diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index dc87885..229eb8e 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -294,7 +294,7 @@ IncludeSources=True AutomaticBreadcrumbsForLogs=(bOnFatalLog=True,bOnErrorLog=False,bOnWarningLog=False,bOnInfoLog=False,bOnDebugLog=False) EnableTracing=True TracesSampleRate=1.000000 -Dsn="https://694ee0c1bc90596005001e4acef50cd7@o87286.ingest.us.sentry.io/4509724070903808" +Dsn= [/Script/MacTargetPlatform.MacTargetSettings] -TargetedRHIs=SF_METAL_SM5 diff --git a/Plugins/Sentry/CHANGELOG.md b/Plugins/Sentry/CHANGELOG.md index cdf1338..7c43dec 100644 --- a/Plugins/Sentry/CHANGELOG.md +++ b/Plugins/Sentry/CHANGELOG.md @@ -1,5 +1,112 @@ # Changelog +## 1.1.1 + +### Features + +- Add support for automatic event linking with spans/transactions ([#1075](https://github.com/getsentry/sentry-unreal/pull/1075)) + +### Dependencies + +- Bump Cocoa SDK (iOS and Mac) from v8.55.0 to v8.55.1 ([#1068](https://github.com/getsentry/sentry-unreal/pull/1068)) + - [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#8551) + - [diff](https://github.com/getsentry/sentry-cocoa/compare/8.55.0...8.55.1) +- Bump Java SDK (Android) from v8.20.0 to v8.21.1 ([#1070](https://github.com/getsentry/sentry-unreal/pull/1070), [#1074](https://github.com/getsentry/sentry-unreal/pull/1074)) + - [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#8211) + - [diff](https://github.com/getsentry/sentry-java/compare/8.20.0...8.21.1) +- Bump Android Gradle Plugin from v5.9.0 to v5.10.0 ([#1072](https://github.com/getsentry/sentry-unreal/pull/1072)) + - [changelog](https://github.com/getsentry/sentry-android-gradle-plugin/blob/main/CHANGELOG.md#5100) + - [diff](https://github.com/getsentry/sentry-android-gradle-plugin/compare/5.9.0...5.10.0) + +## 1.1.0 + +### Features + +- Add GPU and device contexts for all platforms if valid ([#1067](https://github.com/getsentry/sentry-unreal/pull/1067)) + +### Fixes + +- Packaging errors in Unreal Engine 5.4 and 5.5 caused by a missing `SWIFT_PACKAGE` define when targeting Mac and iOS ([#1063](https://github.com/getsentry/sentry-unreal/pull/1063)) +- Crash when attaching game log file to captured event on Android ([#1066](https://github.com/getsentry/sentry-unreal/pull/1066)) + +### Dependencies + +- Bump CLI from v2.52.0 to v2.53.0 ([#1062](https://github.com/getsentry/sentry-unreal/pull/1062)) + - [changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#2530) + - [diff](https://github.com/getsentry/sentry-cli/compare/2.52.0...2.53.0) +- Bump Native SDK from v0.10.0 to v0.10.1 ([#1065](https://github.com/getsentry/sentry-unreal/pull/1065)) + - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0101) + - [diff](https://github.com/getsentry/sentry-native/compare/0.10.0...0.10.1) + +## 1.0.0 + +After several months of work we're finally shipping the Sentry SDK for Unreal Engine version 1.0.0. +If you are upgrading from a version `0.x`, **please refer to the [migration guide on our docs](https://docs.sentry.io/platforms/unreal/migration/)**. + +This release also includes compatibility with plugin extensions for [PlayStation](https://docs.sentry.io/platforms/playstation/), [Xbox](https://docs.sentry.io/platforms/xbox/) and [Nintendo Switch](https://docs.sentry.io/platforms/nintendo-switch/). +Access to the source code of these console extensions require components that exist in private GitHub repositories. Invites are sent to licensed developers after a middleware verification. Please [follow the steps on our docs](https://docs.sentry.io/platforms/unreal/game-consoles/). + +Note that [the diff from the latest experimental release 0.22.0 and this 1.0.0](https://github.com/getsentry/sentry-unreal/compare/0.22.0...1.0.0) release include several alpha and beta releases. +We have not combined all of them in this header but instead, left each incremental change in their own version below. + +If you're migrating from 0.22.0 and want to read through all the changes, we recommend starting from [## 1.0.0-alpha.1](#100-alpha1) below. + +In case you encounter any issues, please [create a ticket on our GitHub repository](https://github.com/getsentry/sentry-unreal/issues/new/choose). + +### Breaking Changes + +- User feedback API reworked: + - Feedback no longer needs to be associated with a specific event - the only required parameter is the user message + - `SentryUserFeedback` class replaced with `SentryFeedback` + - `CaptureUserFeedback` function in `SentrySubsystem` replaced with `CaptureFeedback` + - `CreateSentryUserFeedback` function in `SentryLibrary` replaced with `CreateSentryFeedback` +- On Windows and Linux, `ToString` function of `SentryId` class now returns the ID without dashes +- `StartTransactionWithContextAndOptions` function in `SentrySubsystem` now accepts `FSentryTransactionOptions` struct instead of string map +- `GetCustomSamplingContext` function in `SentrySamplingContext` now returns `TMap` instead of string map + +### Features + +- Add functionality to give/revoke user consent for crash uploads ([#1053](https://github.com/getsentry/sentry-unreal/pull/1053)) +- Add new API for capturing user feedback ([#1051](https://github.com/getsentry/sentry-unreal/pull/1051)) +- Add Traces sampling function support for Windows and Linux ([#1057](https://github.com/getsentry/sentry-unreal/pull/1057)) +- Read `DSN`, `Environment` and `Release` options from environment variables ([#1054](https://github.com/getsentry/sentry-unreal/pull/1054)) + +### Dependencies + +- Bump CLI from v2.51.1 to v2.52.0 ([#1049](https://github.com/getsentry/sentry-unreal/pull/1049)) + - [changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#2520) + - [diff](https://github.com/getsentry/sentry-cli/compare/2.51.1...2.52.0) +- Bump Cocoa SDK (iOS and Mac) from v8.54.0 to v8.55.0 ([#1050](https://github.com/getsentry/sentry-unreal/pull/1050)) + - [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#8550) + - [diff](https://github.com/getsentry/sentry-cocoa/compare/8.54.0...8.55.0) +- Bump Java SDK (Android) from v8.19.1 to v8.20.0 ([#1056](https://github.com/getsentry/sentry-unreal/pull/1056)) + - [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#8200) + - [diff](https://github.com/getsentry/sentry-java/compare/8.19.1...8.20.0) + +## 1.0.0-beta.8 + +### Fixes + +- No more build warnings in platform extensions caused by deprecated Native SDK API usages + +### Dependencies + +- Bump Java SDK (Android) from v8.17.0 to v8.19.1 ([#1031](https://github.com/getsentry/sentry-unreal/pull/1031), [#1042](https://github.com/getsentry/sentry-unreal/pull/1042), [#1046](https://github.com/getsentry/sentry-unreal/pull/1046)) + - [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#8191) + - [diff](https://github.com/getsentry/sentry-java/compare/8.17.0...8.19.1) +- Bump Cocoa SDK (iOS and Mac) from v8.53.2 to v8.54.0 ([#1032](https://github.com/getsentry/sentry-unreal/pull/1032)) + - [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#8540) + - [diff](https://github.com/getsentry/sentry-cocoa/compare/8.53.2...8.54.0) +- Bump CLI from v2.50.2 to v2.51.1 ([#1037](https://github.com/getsentry/sentry-unreal/pull/1037), [#1041](https://github.com/getsentry/sentry-unreal/pull/1041)) + - [changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#2511) + - [diff](https://github.com/getsentry/sentry-cli/compare/2.50.2...2.51.1) +- Bump Android Gradle Plugin from v5.8.0 to v5.9.0 ([#1036](https://github.com/getsentry/sentry-unreal/pull/1036), [#1045](https://github.com/getsentry/sentry-unreal/pull/1045)) + - [changelog](https://github.com/getsentry/sentry-android-gradle-plugin/blob/main/CHANGELOG.md#590) + - [diff](https://github.com/getsentry/sentry-android-gradle-plugin/compare/5.8.0...5.9.0) +- Bump Native SDK from v0.9.1 to v0.10.0 ([#1040](https://github.com/getsentry/sentry-unreal/pull/1040)) + - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0100) + - [diff](https://github.com/getsentry/sentry-native/compare/0.9.1...0.10.0) + ## 1.0.0-beta.7 ### Fixes diff --git a/Plugins/Sentry/Sentry.uplugin b/Plugins/Sentry/Sentry.uplugin index 5cb267b..050f11f 100644 --- a/Plugins/Sentry/Sentry.uplugin +++ b/Plugins/Sentry/Sentry.uplugin @@ -1,7 +1,8 @@ { + "EngineVersion" : "5.6.0", "FileVersion": 3, "Version": 1, - "VersionName": "1.0.0-beta.7", + "VersionName": "1.1.1", "FriendlyName": "Sentry", "Description": "Sentry catches all your errors and performance issues, and shows you how to fix them before they bring down the player experience.", "Category": "Code Plugins", diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryFeedback.cpp b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryFeedback.cpp new file mode 100644 index 0000000..f28c78e --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryFeedback.cpp @@ -0,0 +1,71 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "AndroidSentryFeedback.h" + +#include "AndroidSentryId.h" + +#include "Infrastructure/AndroidSentryJavaClasses.h" + +FAndroidSentryFeedback::FAndroidSentryFeedback(const FString& message) + : FSentryJavaObjectWrapper(SentryJavaClasses::Feedback, "(Ljava/lang/String;)V", + *GetJString(message)) +{ + SetupClassMethods(); +} + +void FAndroidSentryFeedback::SetupClassMethods() +{ + GetMessageMethod = GetMethod("getMessage", "()Ljava/lang/String;"); + SetNameMethod = GetMethod("setName", "(Ljava/lang/String;)V"); + GetNameMethod = GetMethod("getName", "()Ljava/lang/String;"); + SetContactEmailMethod = GetMethod("setContactEmail", "(Ljava/lang/String;)V"); + GetContactEmailMethod = GetMethod("getContactEmail", "()Ljava/lang/String;"); + SetAssociatedEventMethod = GetMethod("setAssociatedEventId", "(Lio/sentry/protocol/SentryId;)V"); + GetAssociatedEventMethod = GetMethod("getAssociatedEventId", "()Lio/sentry/protocol/SentryId;"); +} + +FString FAndroidSentryFeedback::GetMessage() const +{ + return CallMethod(GetMessageMethod); +} + +void FAndroidSentryFeedback::SetName(const FString& name) +{ + CallMethod(SetNameMethod, *GetJString(name)); +} + +FString FAndroidSentryFeedback::GetName() const +{ + return CallMethod(GetNameMethod); +} + +void FAndroidSentryFeedback::SetContactEmail(const FString& email) +{ + CallMethod(SetContactEmailMethod, *GetJString(email)); +} + +FString FAndroidSentryFeedback::GetContactEmail() const +{ + return CallMethod(GetContactEmailMethod); +} + +void FAndroidSentryFeedback::SetAssociatedEvent(const FString& eventId) +{ + if (eventId.IsEmpty()) + return; + + TSharedPtr idAndroid = MakeShareable(new FAndroidSentryId(eventId)); + CallMethod(SetAssociatedEventMethod, idAndroid->GetJObject()); +} + +FString FAndroidSentryFeedback::GetAssociatedEvent() const +{ + auto idAndroid = CallObjectMethod(GetAssociatedEventMethod); + if (!idAndroid) + { + return FString(); + } + + TSharedPtr eventId = MakeShareable(new FAndroidSentryId(*idAndroid)); + return eventId->ToString(); +} diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryFeedback.h b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryFeedback.h new file mode 100644 index 0000000..7ac7a83 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryFeedback.h @@ -0,0 +1,36 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "Interface/SentryFeedbackInterface.h" + +#include "Infrastructure/AndroidSentryJavaObjectWrapper.h" + +class ISentryId; + +class FAndroidSentryFeedback : public ISentryFeedback, public FSentryJavaObjectWrapper +{ +public: + FAndroidSentryFeedback(const FString& message); + + void SetupClassMethods(); + + virtual FString GetMessage() const override; + virtual void SetName(const FString& name) override; + virtual FString GetName() const override; + virtual void SetContactEmail(const FString& email) override; + virtual FString GetContactEmail() const override; + virtual void SetAssociatedEvent(const FString& eventId) override; + virtual FString GetAssociatedEvent() const override; + +private: + FSentryJavaMethod GetMessageMethod; + FSentryJavaMethod SetNameMethod; + FSentryJavaMethod GetNameMethod; + FSentryJavaMethod SetContactEmailMethod; + FSentryJavaMethod GetContactEmailMethod; + FSentryJavaMethod SetAssociatedEventMethod; + FSentryJavaMethod GetAssociatedEventMethod; +}; + +typedef FAndroidSentryFeedback FPlatformSentryFeedback; \ No newline at end of file diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySamplingContext.cpp b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySamplingContext.cpp index 7a09355..2f70fe9 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySamplingContext.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySamplingContext.cpp @@ -24,15 +24,15 @@ TSharedPtr FAndroidSentrySamplingContext::GetTransact return MakeShareable(new FAndroidSentryTransactionContext(*transactionContext)); } -TMap FAndroidSentrySamplingContext::GetCustomSamplingContext() const +TMap FAndroidSentrySamplingContext::GetCustomSamplingContext() const { auto customSamplingContext = CallObjectMethod(GetCustomSamplingContextMethod); if (!customSamplingContext) - return TMap(); + return TMap(); FSentryJavaObjectWrapper NativeCustomSamplingContext(SentryJavaClasses::CustomSamplingContext, *customSamplingContext); FSentryJavaMethod GetDataMethod = NativeCustomSamplingContext.GetMethod("getData", "()Ljava/util/Map;"); auto data = NativeCustomSamplingContext.CallObjectMethod(GetDataMethod); - return FAndroidSentryConverters::StringMapToUnreal(*data); + return FAndroidSentryConverters::VariantMapToUnreal(*data); } diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySamplingContext.h b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySamplingContext.h index 74146e2..cf58615 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySamplingContext.h +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySamplingContext.h @@ -14,7 +14,7 @@ class FAndroidSentrySamplingContext : public ISentrySamplingContext, public FSen void SetupClassMethods(); virtual TSharedPtr GetTransactionContext() const override; - virtual TMap GetCustomSamplingContext() const override; + virtual TMap GetCustomSamplingContext() const override; private: FSentryJavaMethod GetTransactionContextMethod; diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySpan.cpp b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySpan.cpp index 6981c75..acb4968 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySpan.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySpan.cpp @@ -23,16 +23,16 @@ void FAndroidSentrySpan::SetupClassMethods() ToSentryTraceMethod = GetMethod("toSentryTrace", "()Lio/sentry/SentryTraceHeader;"); } -TSharedPtr FAndroidSentrySpan::StartChild(const FString& operation, const FString& desctiption) +TSharedPtr FAndroidSentrySpan::StartChild(const FString& operation, const FString& desctiption, bool bindToScope) { auto span = CallObjectMethod(StartChildMethod, *GetJString(operation), *GetJString(desctiption)); return MakeShareable(new FAndroidSentrySpan(*span)); } -TSharedPtr FAndroidSentrySpan::StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) +TSharedPtr FAndroidSentrySpan::StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) { UE_LOG(LogSentrySdk, Log, TEXT("Starting child span with explicit timestamp not supported on Android.")); - return StartChild(operation, desctiption); + return StartChild(operation, desctiption, bindToScope); } void FAndroidSentrySpan::Finish() diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySpan.h b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySpan.h index 80e4c94..1601793 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySpan.h +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySpan.h @@ -13,8 +13,8 @@ class FAndroidSentrySpan : public ISentrySpan, public FSentryJavaObjectWrapper void SetupClassMethods(); - virtual TSharedPtr StartChild(const FString& operation, const FString& desctiption) override; - virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) override; + virtual TSharedPtr StartChild(const FString& operation, const FString& desctiption, bool bindToScope) override; + virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) override; virtual void Finish() override; virtual void FinishWithTimestamp(int64 timestamp) override; virtual bool IsFinished() const override; diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index ba6715c..011eb9a 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -5,12 +5,12 @@ #include "AndroidSentryAttachment.h" #include "AndroidSentryBreadcrumb.h" #include "AndroidSentryEvent.h" +#include "AndroidSentryFeedback.h" #include "AndroidSentryId.h" #include "AndroidSentryTransaction.h" #include "AndroidSentryTransactionContext.h" #include "AndroidSentryTransactionOptions.h" #include "AndroidSentryUser.h" -#include "AndroidSentryUserFeedback.h" #include "SentryBeforeSendHandler.h" #include "SentryDefines.h" @@ -33,8 +33,8 @@ void FAndroidSentrySubsystem::InitWithSettings(const USentrySettings* settings, { TSharedPtr SettingsJson = MakeShareable(new FJsonObject); SettingsJson->SetStringField(TEXT("dsn"), settings->Dsn); - SettingsJson->SetStringField(TEXT("release"), settings->OverrideReleaseName ? settings->Release : settings->GetFormattedReleaseName()); - SettingsJson->SetStringField(TEXT("environment"), settings->Environment); + SettingsJson->SetStringField(TEXT("release"), settings->GetEffectiveRelease()); + SettingsJson->SetStringField(TEXT("environment"), settings->GetEffectiveEnvironment()); SettingsJson->SetStringField(TEXT("dist"), settings->Dist); SettingsJson->SetBoolField(TEXT("autoSessionTracking"), settings->EnableAutoSessionTracking); SettingsJson->SetNumberField(TEXT("sessionTimeout"), settings->SessionTimeout); @@ -200,12 +200,12 @@ TSharedPtr FAndroidSentrySubsystem::CaptureEnsure(const FString& type return MakeShareable(new FAndroidSentryId(*id)); } -void FAndroidSentrySubsystem::CaptureUserFeedback(TSharedPtr userFeedback) +void FAndroidSentrySubsystem::CaptureFeedback(TSharedPtr feedback) { - TSharedPtr userFeedbackAndroid = StaticCastSharedPtr(userFeedback); + TSharedPtr feedbackAndroid = StaticCastSharedPtr(feedback); - FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::Sentry, "captureUserFeedback", "(Lio/sentry/UserFeedback;)V", - userFeedbackAndroid->GetJObject()); + FSentryJavaObjectWrapper::CallStaticObjectMethod(SentryJavaClasses::Sentry, "captureFeedback", "(Lio/sentry/protocol/Feedback;)Lio/sentry/protocol/SentryId;", + feedbackAndroid->GetJObject()); } void FAndroidSentrySubsystem::SetUser(TSharedPtr user) @@ -255,36 +255,61 @@ void FAndroidSentrySubsystem::EndSession() FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::Sentry, "endSession", "()V", nullptr); } -TSharedPtr FAndroidSentrySubsystem::StartTransaction(const FString& name, const FString& operation) +void FAndroidSentrySubsystem::GiveUserConsent() { - auto transaction = FSentryJavaObjectWrapper::CallStaticObjectMethod(SentryJavaClasses::Sentry, "startTransaction", "(Ljava/lang/String;Ljava/lang/String;)Lio/sentry/ITransaction;", - *FSentryJavaObjectWrapper::GetJString(name), *FSentryJavaObjectWrapper::GetJString(operation)); + // No-op; feature not currently implemented for this platform + UE_LOG(LogSentrySdk, Log, TEXT("GiveUserConsent is not supported on Android.")); +} + +void FAndroidSentrySubsystem::RevokeUserConsent() +{ + // No-op; feature not currently implemented for this platform + UE_LOG(LogSentrySdk, Log, TEXT("RevokeUserConsent is not supported on Android.")); +} + +EUserConsent FAndroidSentrySubsystem::GetUserConsent() const +{ + UE_LOG(LogSentrySdk, Log, TEXT("GetUserConsent is not supported on Android. Returning default `Unknown` value.")); + return EUserConsent::Unknown; +} + +TSharedPtr FAndroidSentrySubsystem::StartTransaction(const FString& name, const FString& operation, bool bindToScope) +{ + TSharedPtr transactionOptionsAndroid = MakeShareable(new FAndroidSentryTransactionOptions()); + transactionOptionsAndroid->SetBindToScope(bindToScope); + + auto transaction = FSentryJavaObjectWrapper::CallStaticObjectMethod(SentryJavaClasses::Sentry, "startTransaction", "(Ljava/lang/String;Ljava/lang/String;Lio/sentry/TransactionOptions;)Lio/sentry/ITransaction;", + *FSentryJavaObjectWrapper::GetJString(name), *FSentryJavaObjectWrapper::GetJString(operation), transactionOptionsAndroid->GetJObject()); return MakeShareable(new FAndroidSentryTransaction(*transaction)); } -TSharedPtr FAndroidSentrySubsystem::StartTransactionWithContext(TSharedPtr context) +TSharedPtr FAndroidSentrySubsystem::StartTransactionWithContext(TSharedPtr context, bool bindToScope) { TSharedPtr transactionContextAndroid = StaticCastSharedPtr(context); - auto transaction = FSentryJavaObjectWrapper::CallStaticObjectMethod(SentryJavaClasses::Sentry, "startTransaction", "(Lio/sentry/TransactionContext;)Lio/sentry/ITransaction;", - transactionContextAndroid->GetJObject()); + TSharedPtr transactionOptionsAndroid = MakeShareable(new FAndroidSentryTransactionOptions()); + transactionOptionsAndroid->SetBindToScope(bindToScope); + + auto transaction = FSentryJavaObjectWrapper::CallStaticObjectMethod(SentryJavaClasses::Sentry, "startTransaction", "(Lio/sentry/TransactionContext;Lio/sentry/TransactionOptions;)Lio/sentry/ITransaction;", + transactionContextAndroid->GetJObject(), transactionOptionsAndroid->GetJObject()); return MakeShareable(new FAndroidSentryTransaction(*transaction)); } -TSharedPtr FAndroidSentrySubsystem::StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) +TSharedPtr FAndroidSentrySubsystem::StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp, bool bindToScope) { UE_LOG(LogSentrySdk, Log, TEXT("Setting transaction timestamp explicitly not supported on Android.")); - return StartTransactionWithContext(context); + return StartTransactionWithContext(context, bindToScope); } -TSharedPtr FAndroidSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) +TSharedPtr FAndroidSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) { TSharedPtr transactionContextAndroid = StaticCastSharedPtr(context); TSharedPtr transactionOptionsAndroid = MakeShareable(new FAndroidSentryTransactionOptions()); - transactionOptionsAndroid->SetCustomSamplingContext(options); + transactionOptionsAndroid->SetCustomSamplingContext(options.CustomSamplingContext); + transactionOptionsAndroid->SetBindToScope(options.BindToScope); auto transaction = FSentryJavaObjectWrapper::CallStaticObjectMethod(SentryJavaClasses::Sentry, "startTransaction", "(Lio/sentry/TransactionContext;Lio/sentry/TransactionOptions;)Lio/sentry/ITransaction;", transactionContextAndroid->GetJObject(), transactionOptionsAndroid->GetJObject()); diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySubsystem.h b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySubsystem.h index 8462ae5..80ae535 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySubsystem.h +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentrySubsystem.h @@ -22,7 +22,7 @@ class FAndroidSentrySubsystem : public ISentrySubsystem virtual TSharedPtr CaptureEvent(TSharedPtr event) override; virtual TSharedPtr CaptureEventWithScope(TSharedPtr event, const FSentryScopeDelegate& onConfigureScope) override; virtual TSharedPtr CaptureEnsure(const FString& type, const FString& message) override; - virtual void CaptureUserFeedback(TSharedPtr userFeedback) override; + virtual void CaptureFeedback(TSharedPtr feedback) override; virtual void SetUser(TSharedPtr user) override; virtual void RemoveUser() override; virtual void SetContext(const FString& key, const TMap& values) override; @@ -31,10 +31,13 @@ class FAndroidSentrySubsystem : public ISentrySubsystem virtual void SetLevel(ESentryLevel level) override; virtual void StartSession() override; virtual void EndSession() override; - virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) override; - virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) override; - virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) override; - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) override; + virtual void GiveUserConsent() override; + virtual void RevokeUserConsent() override; + virtual EUserConsent GetUserConsent() const override; + virtual TSharedPtr StartTransaction(const FString& name, const FString& operation, bool bindToScope) override; + virtual TSharedPtr StartTransactionWithContext(TSharedPtr context, bool bindToScope) override; + virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp, bool bindToScope) override; + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) override; virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) override; virtual void HandleAssert() override; diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransaction.cpp b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransaction.cpp index 73361d5..3a8e7c1 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransaction.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransaction.cpp @@ -25,16 +25,16 @@ void FAndroidSentryTransaction::SetupClassMethods() ToSentryTraceMethod = GetMethod("toSentryTrace", "()Lio/sentry/SentryTraceHeader;"); } -TSharedPtr FAndroidSentryTransaction::StartChildSpan(const FString& operation, const FString& desctiption) +TSharedPtr FAndroidSentryTransaction::StartChildSpan(const FString& operation, const FString& desctiption, bool bindToScope) { auto span = CallObjectMethod(StartChildMethod, *GetJString(operation), *GetJString(desctiption)); return MakeShareable(new FAndroidSentrySpan(*span)); } -TSharedPtr FAndroidSentryTransaction::StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) +TSharedPtr FAndroidSentryTransaction::StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) { UE_LOG(LogSentrySdk, Log, TEXT("Starting child span with explicit timestamp not supported on Android.")); - return StartChildSpan(operation, desctiption); + return StartChildSpan(operation, desctiption, bindToScope); } void FAndroidSentryTransaction::Finish() diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransaction.h b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransaction.h index 78224fd..03d1d61 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransaction.h +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransaction.h @@ -13,8 +13,8 @@ class FAndroidSentryTransaction : public ISentryTransaction, public FSentryJavaO void SetupClassMethods(); - virtual TSharedPtr StartChildSpan(const FString& operation, const FString& desctiption) override; - virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) override; + virtual TSharedPtr StartChildSpan(const FString& operation, const FString& desctiption, bool bindToScope) override; + virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) override; virtual void Finish() override; virtual void FinishWithTimestamp(int64 timestamp) override; virtual bool IsFinished() const override; diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.cpp b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.cpp index 9d26eab..9510d54 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.cpp @@ -14,17 +14,23 @@ FAndroidSentryTransactionOptions::FAndroidSentryTransactionOptions() void FAndroidSentryTransactionOptions::SetupClassMethods() { SetCustomSamplingContextMethod = GetMethod("setCustomSamplingContext", "(Lio/sentry/CustomSamplingContext;)V"); + SetBindToScopeMethod = GetMethod("setBindToScope", "(Z)V"); } -void FAndroidSentryTransactionOptions::SetCustomSamplingContext(const TMap& data) +void FAndroidSentryTransactionOptions::SetCustomSamplingContext(const TMap& data) { FSentryJavaObjectWrapper NativeCustomSamplingContext(SentryJavaClasses::CustomSamplingContext, "()V"); FSentryJavaMethod SetMethod = NativeCustomSamplingContext.GetMethod("set", "(Ljava/lang/String;Ljava/lang/Object;)V"); for (const auto& dataItem : data) { - NativeCustomSamplingContext.CallMethod(SetMethod, *GetJString(dataItem.Key), *GetJString(dataItem.Value)); + NativeCustomSamplingContext.CallMethod(SetMethod, *GetJString(dataItem.Key), FAndroidSentryConverters::VariantToNative(dataItem.Value)->GetJObject()); } CallMethod(SetCustomSamplingContextMethod, NativeCustomSamplingContext.GetJObject()); } + +void FAndroidSentryTransactionOptions::SetBindToScope(bool bindToScope) +{ + CallMethod(SetBindToScopeMethod, bindToScope); +} diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.h b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.h index 8523211..0fab713 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.h +++ b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryTransactionOptions.h @@ -2,6 +2,8 @@ #pragma once +#include "SentryVariant.h" + #include "Infrastructure/AndroidSentryJavaObjectWrapper.h" class FAndroidSentryTransactionOptions : public FSentryJavaObjectWrapper @@ -11,10 +13,12 @@ class FAndroidSentryTransactionOptions : public FSentryJavaObjectWrapper void SetupClassMethods(); - void SetCustomSamplingContext(const TMap& data); + void SetCustomSamplingContext(const TMap& data); + void SetBindToScope(bool bindToScope); private: FSentryJavaMethod SetCustomSamplingContextMethod; + FSentryJavaMethod SetBindToScopeMethod; }; typedef FAndroidSentryTransactionOptions FPlatformSentryTransactionOptions; diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryUserFeedback.cpp b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryUserFeedback.cpp deleted file mode 100644 index ad59b45..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryUserFeedback.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#include "AndroidSentryUserFeedback.h" - -#include "AndroidSentryId.h" - -#include "Infrastructure/AndroidSentryJavaClasses.h" - -FAndroidSentryUserFeedback::FAndroidSentryUserFeedback(TSharedPtr eventId) - : FSentryJavaObjectWrapper(SentryJavaClasses::UserFeedback, "(Lio/sentry/protocol/SentryId;)V", - StaticCastSharedPtr(eventId)->GetJObject()) -{ - SetupClassMethods(); -} - -void FAndroidSentryUserFeedback::SetupClassMethods() -{ - SetNameMethod = GetMethod("setName", "(Ljava/lang/String;)V"); - GetNameMethod = GetMethod("getName", "()Ljava/lang/String;"); - SetEmailMethod = GetMethod("setEmail", "(Ljava/lang/String;)V"); - GetEmailMethod = GetMethod("getEmail", "()Ljava/lang/String;"); - SetCommentMethod = GetMethod("setComments", "(Ljava/lang/String;)V"); - GetCommentMethod = GetMethod("getComments", "()Ljava/lang/String;"); -} - -void FAndroidSentryUserFeedback::SetName(const FString& name) -{ - CallMethod(SetNameMethod, *GetJString(name)); -} - -FString FAndroidSentryUserFeedback::GetName() const -{ - return CallMethod(GetNameMethod); -} - -void FAndroidSentryUserFeedback::SetEmail(const FString& email) -{ - CallMethod(SetEmailMethod, *GetJString(email)); -} - -FString FAndroidSentryUserFeedback::GetEmail() const -{ - return CallMethod(GetEmailMethod); -} - -void FAndroidSentryUserFeedback::SetComment(const FString& comment) -{ - CallMethod(SetCommentMethod, *GetJString(comment)); -} - -FString FAndroidSentryUserFeedback::GetComment() const -{ - return CallMethod(GetCommentMethod); -} diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryUserFeedback.h b/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryUserFeedback.h deleted file mode 100644 index 3ea36a3..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/Android/AndroidSentryUserFeedback.h +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#pragma once - -#include "Interface/SentryUserFeedbackInterface.h" - -#include "Infrastructure/AndroidSentryJavaObjectWrapper.h" - -class ISentryId; - -class FAndroidSentryUserFeedback : public ISentryUserFeedback, public FSentryJavaObjectWrapper -{ -public: - FAndroidSentryUserFeedback(TSharedPtr eventId); - - void SetupClassMethods(); - - virtual void SetName(const FString& name) override; - virtual FString GetName() const override; - virtual void SetEmail(const FString& email) override; - virtual FString GetEmail() const override; - virtual void SetComment(const FString& comment) override; - virtual FString GetComment() const override; - -private: - FSentryJavaMethod SetNameMethod; - FSentryJavaMethod GetNameMethod; - FSentryJavaMethod SetEmailMethod; - FSentryJavaMethod GetEmailMethod; - FSentryJavaMethod SetCommentMethod; - FSentryJavaMethod GetCommentMethod; -}; - -typedef FAndroidSentryUserFeedback FPlatformSentryUserFeedback; \ No newline at end of file diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.cpp b/Plugins/Sentry/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.cpp index 5a719a0..853d0a4 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.cpp @@ -14,7 +14,7 @@ const FSentryJavaClass SentryJavaClasses::SentryId = FSentryJavaClass { "io/s const FSentryJavaClass SentryJavaClasses::Scope = FSentryJavaClass { "io/sentry/IScope", ESentryJavaClassType::External }; const FSentryJavaClass SentryJavaClasses::ScopeImpl = FSentryJavaClass { "io/sentry/Scope", ESentryJavaClassType::External }; const FSentryJavaClass SentryJavaClasses::User = FSentryJavaClass { "io/sentry/protocol/User", ESentryJavaClassType::External }; -const FSentryJavaClass SentryJavaClasses::UserFeedback = FSentryJavaClass { "io/sentry/UserFeedback", ESentryJavaClassType::External }; +const FSentryJavaClass SentryJavaClasses::Feedback = FSentryJavaClass { "io/sentry/protocol/Feedback", ESentryJavaClassType::External }; const FSentryJavaClass SentryJavaClasses::Message = FSentryJavaClass { "io/sentry/protocol/Message", ESentryJavaClassType::External }; const FSentryJavaClass SentryJavaClasses::SentryLevel = FSentryJavaClass { "io/sentry/SentryLevel", ESentryJavaClassType::External }; const FSentryJavaClass SentryJavaClasses::SentryHint = FSentryJavaClass { "io/sentry/Hint", ESentryJavaClassType::External }; diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.h b/Plugins/Sentry/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.h index 5d62532..3daa177 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.h +++ b/Plugins/Sentry/Source/Sentry/Private/Android/Infrastructure/AndroidSentryJavaClasses.h @@ -16,7 +16,7 @@ struct SentryJavaClasses const static FSentryJavaClass Scope; const static FSentryJavaClass ScopeImpl; const static FSentryJavaClass User; - const static FSentryJavaClass UserFeedback; + const static FSentryJavaClass Feedback; const static FSentryJavaClass Message; const static FSentryJavaClass SentryLevel; const static FSentryJavaClass SentryHint; diff --git a/Plugins/Sentry/Source/Sentry/Private/Android/Jni/AndroidSentryJni.cpp b/Plugins/Sentry/Source/Sentry/Private/Android/Jni/AndroidSentryJni.cpp index 2977339..5e163b0 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Android/Jni/AndroidSentryJni.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Android/Jni/AndroidSentryJni.cpp @@ -125,8 +125,8 @@ JNI_METHOD jstring Java_io_sentry_unreal_SentryBridgeJava_getLogFilePath(JNIEnv* IFileManager& FileManager = IFileManager::Get(); if (!FileManager.FileExists(*LogFilePath)) { - return *FSentryJavaObjectWrapper::GetJString(FString("")); + return env->NewStringUTF(""); } - return *FSentryJavaObjectWrapper::GetJString(LogFilePath); + return env->NewStringUTF(TCHAR_TO_UTF8(*LogFilePath)); } diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryFeedback.cpp b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryFeedback.cpp new file mode 100644 index 0000000..d98244d --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryFeedback.cpp @@ -0,0 +1,70 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "AppleSentryFeedback.h" + +#include "AppleSentryId.h" + +#include "Convenience/AppleSentryInclude.h" +#include "Convenience/AppleSentryMacro.h" + +FAppleSentryFeedback::FAppleSentryFeedback(const FString& message) + : Message(message) +{ +} + +FAppleSentryFeedback::~FAppleSentryFeedback() +{ + // Put custom destructor logic here if needed +} + +FString FAppleSentryFeedback::GetMessage() const +{ + return Message; +} + +void FAppleSentryFeedback::SetName(const FString& name) +{ + Name = name; +} + +FString FAppleSentryFeedback::GetName() const +{ + return Name; +} + +void FAppleSentryFeedback::SetContactEmail(const FString& email) +{ + Email = email; +} + +FString FAppleSentryFeedback::GetContactEmail() const +{ + return Email; +} + +void FAppleSentryFeedback::SetAssociatedEvent(const FString& eventId) +{ + EventId = eventId; +} + +FString FAppleSentryFeedback::GetAssociatedEvent() const +{ + return EventId; +} + +SentryFeedback* FAppleSentryFeedback::CreateSentryFeedback(TSharedPtr feedback) +{ + SentryId* id = nil; + if (!feedback->EventId.IsEmpty()) + { + TSharedPtr idIOS = MakeShareable(new FAppleSentryId(feedback->EventId)); + id = idIOS->GetNativeObject(); + } + + return [[SENTRY_APPLE_CLASS(SentryFeedback) alloc] initWithMessage:feedback->Message.GetNSString() + name:feedback->Name.GetNSString() + email:feedback->Email.GetNSString() + source:SentryFeedbackSourceCustom + associatedEventId:id + attachments:nil]; +} diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryFeedback.h b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryFeedback.h new file mode 100644 index 0000000..a353694 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryFeedback.h @@ -0,0 +1,32 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "Interface/SentryFeedbackInterface.h" + +@class SentryFeedback; + +class FAppleSentryFeedback : public ISentryFeedback +{ +public: + FAppleSentryFeedback(const FString& message); + virtual ~FAppleSentryFeedback() override; + + virtual FString GetMessage() const override; + virtual void SetName(const FString& name) override; + virtual FString GetName() const override; + virtual void SetContactEmail(const FString& email) override; + virtual FString GetContactEmail() const override; + virtual void SetAssociatedEvent(const FString& eventId) override; + virtual FString GetAssociatedEvent() const override; + + static SentryFeedback* CreateSentryFeedback(TSharedPtr feedback); + +private: + FString Message; + FString Name; + FString Email; + FString EventId; +}; + +typedef FAppleSentryFeedback FPlatformSentryFeedback; \ No newline at end of file diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryId.cpp b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryId.cpp index 5311352..7e10117 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryId.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryId.cpp @@ -7,20 +7,12 @@ FAppleSentryId::FAppleSentryId() { -#if PLATFORM_MAC - IdApple = [[SENTRY_APPLE_CLASS(_TtC6Sentry8SentryId) alloc] init]; -#elif PLATFORM_IOS IdApple = [[SENTRY_APPLE_CLASS(SentryId) alloc] init]; -#endif } FAppleSentryId::FAppleSentryId(const FString& id) { -#if PLATFORM_MAC - IdApple = [[SENTRY_APPLE_CLASS(_TtC6Sentry8SentryId) alloc] initWithUUIDString:id.GetNSString()]; -#elif PLATFORM_IOS IdApple = [[SENTRY_APPLE_CLASS(SentryId) alloc] initWithUUIDString:id.GetNSString()]; -#endif } FAppleSentryId::FAppleSentryId(SentryId* id) diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySamplingContext.cpp b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySamplingContext.cpp index daa9c75..fa88b0b 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySamplingContext.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySamplingContext.cpp @@ -22,9 +22,9 @@ TSharedPtr FAppleSentrySamplingContext::GetTransactio return MakeShareable(new FAppleSentryTransactionContext(SamplingContext.transactionContext)); } -TMap FAppleSentrySamplingContext::GetCustomSamplingContext() const +TMap FAppleSentrySamplingContext::GetCustomSamplingContext() const { - return FAppleSentryConverters::StringMapToUnreal(SamplingContext.customSamplingContext); + return FAppleSentryConverters::VariantMapToUnreal(SamplingContext.customSamplingContext); } SentrySamplingContext* FAppleSentrySamplingContext::GetNativeObject() diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySamplingContext.h b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySamplingContext.h index 0ab103f..65f9803 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySamplingContext.h +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySamplingContext.h @@ -13,7 +13,7 @@ class FAppleSentrySamplingContext : public ISentrySamplingContext virtual ~FAppleSentrySamplingContext() override; virtual TSharedPtr GetTransactionContext() const override; - virtual TMap GetCustomSamplingContext() const override; + virtual TMap GetCustomSamplingContext() const override; SentrySamplingContext* GetNativeObject(); diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySpan.cpp b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySpan.cpp index 8aa7709..dedf5e8 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySpan.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySpan.cpp @@ -7,6 +7,7 @@ #include "Infrastructure/AppleSentryConverters.h" #include "Convenience/AppleSentryInclude.h" +#include "Convenience/AppleSentryMacro.h" FAppleSentrySpan::FAppleSentrySpan(id span) { @@ -24,16 +25,24 @@ id FAppleSentrySpan::GetNativeObject() return SpanApple; } -TSharedPtr FAppleSentrySpan::StartChild(const FString& operation, const FString& desctiption) +TSharedPtr FAppleSentrySpan::StartChild(const FString& operation, const FString& desctiption, bool bindToScope) { id span = [SpanApple startChildWithOperation:operation.GetNSString() description:desctiption.GetNSString()]; + + if (bindToScope) + { + [SENTRY_APPLE_CLASS(SentrySDK) configureScope:^(SentryScope* scope) { + scope.span = span; + }]; + } + return MakeShareable(new FAppleSentrySpan(span)); } -TSharedPtr FAppleSentrySpan::StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) +TSharedPtr FAppleSentrySpan::StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) { UE_LOG(LogSentrySdk, Log, TEXT("Starting child span with explicit timestamp not supported on Mac/iOS.")); - return StartChild(operation, desctiption); + return StartChild(operation, desctiption, bindToScope); } void FAppleSentrySpan::Finish() diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySpan.h b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySpan.h index f4b5e30..d694066 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySpan.h +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySpan.h @@ -14,8 +14,8 @@ class FAppleSentrySpan : public ISentrySpan id GetNativeObject(); - virtual TSharedPtr StartChild(const FString& operation, const FString& desctiption) override; - virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) override; + virtual TSharedPtr StartChild(const FString& operation, const FString& desctiption, bool bindToScope) override; + virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) override; virtual void Finish() override; virtual void FinishWithTimestamp(int64 timestamp) override; virtual bool IsFinished() const override; diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index 50291b7..981bf0c 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -5,14 +5,13 @@ #include "AppleSentryAttachment.h" #include "AppleSentryBreadcrumb.h" #include "AppleSentryEvent.h" +#include "AppleSentryFeedback.h" #include "AppleSentryId.h" #include "AppleSentrySamplingContext.h" #include "AppleSentryScope.h" #include "AppleSentryTransaction.h" #include "AppleSentryTransactionContext.h" #include "AppleSentryUser.h" -#include "AppleSentryUserFeedback.h" -#include "Convenience/AppleSentryMacro.h" #include "SentryBeforeBreadcrumbHandler.h" #include "SentryBeforeSendHandler.h" @@ -26,6 +25,7 @@ #include "Infrastructure/AppleSentryConverters.h" #include "Convenience/AppleSentryInclude.h" +#include "Convenience/AppleSentryMacro.h" #include "Utils/SentryFileUtils.h" #include "Utils/SentryLogUtils.h" @@ -51,11 +51,11 @@ void FAppleSentrySubsystem::InitWithSettings(const USentrySettings* settings, US dispatch_async(dispatch_get_main_queue(), ^{ [SENTRY_APPLE_CLASS(SentrySDK) startWithConfigureOptions:^(SentryOptions* options) { options.dsn = settings->GetEffectiveDsn().GetNSString(); - options.environment = settings->Environment.GetNSString(); + options.releaseName = settings->GetEffectiveRelease().GetNSString(); + options.environment = settings->GetEffectiveEnvironment().GetNSString(); options.dist = settings->Dist.GetNSString(); options.enableAutoSessionTracking = settings->EnableAutoSessionTracking; options.sessionTrackingIntervalMillis = settings->SessionTimeout; - options.releaseName = settings->OverrideReleaseName ? settings->Release.GetNSString() : settings->GetFormattedReleaseName().GetNSString(); options.attachStacktrace = settings->AttachStacktrace; options.debug = settings->Debug; options.sampleRate = [NSNumber numberWithFloat:settings->SampleRate]; @@ -290,11 +290,11 @@ TSharedPtr FAppleSentrySubsystem::CaptureEnsure(const FString& type, return id; } -void FAppleSentrySubsystem::CaptureUserFeedback(TSharedPtr userFeedback) +void FAppleSentrySubsystem::CaptureFeedback(TSharedPtr feedback) { - TSharedPtr userFeedbackApple = StaticCastSharedPtr(userFeedback); + TSharedPtr feedbackApple = StaticCastSharedPtr(feedback); - [SENTRY_APPLE_CLASS(SentrySDK) captureFeedback:FAppleSentryUserFeedback::CreateSentryFeedback(userFeedbackApple)]; + [SENTRY_APPLE_CLASS(SentrySDK) captureFeedback:FAppleSentryFeedback::CreateSentryFeedback(feedbackApple)]; } void FAppleSentrySubsystem::SetUser(TSharedPtr user) @@ -347,34 +347,53 @@ void FAppleSentrySubsystem::EndSession() [SENTRY_APPLE_CLASS(SentrySDK) endSession]; } -TSharedPtr FAppleSentrySubsystem::StartTransaction(const FString& name, const FString& operation) +void FAppleSentrySubsystem::GiveUserConsent() +{ + // No-op; feature not currently implemented for this platform + UE_LOG(LogSentrySdk, Log, TEXT("GiveUserConsent is not supported on Mac/iOS.")); +} + +void FAppleSentrySubsystem::RevokeUserConsent() +{ + // No-op; feature not currently implemented for this platform + UE_LOG(LogSentrySdk, Log, TEXT("RevokeUserConsent is not supported on Mac/iOS.")); +} + +EUserConsent FAppleSentrySubsystem::GetUserConsent() const +{ + UE_LOG(LogSentrySdk, Log, TEXT("GetUserConsent is not supported on Mac/iOS. Returning default `Unknown` value.")); + return EUserConsent::Unknown; +} + +TSharedPtr FAppleSentrySubsystem::StartTransaction(const FString& name, const FString& operation, bool bindToScope) { - id transaction = [SENTRY_APPLE_CLASS(SentrySDK) startTransactionWithName:name.GetNSString() operation:operation.GetNSString()]; + id transaction = [SENTRY_APPLE_CLASS(SentrySDK) startTransactionWithName:name.GetNSString() operation:operation.GetNSString() bindToScope:bindToScope]; return MakeShareable(new FAppleSentryTransaction(transaction)); } -TSharedPtr FAppleSentrySubsystem::StartTransactionWithContext(TSharedPtr context) +TSharedPtr FAppleSentrySubsystem::StartTransactionWithContext(TSharedPtr context, bool bindToScope) { TSharedPtr transactionContextIOS = StaticCastSharedPtr(context); - id transaction = [SENTRY_APPLE_CLASS(SentrySDK) startTransactionWithContext:transactionContextIOS->GetNativeObject()]; + id transaction = [SENTRY_APPLE_CLASS(SentrySDK) startTransactionWithContext:transactionContextIOS->GetNativeObject() bindToScope:bindToScope]; return MakeShareable(new FAppleSentryTransaction(transaction)); } -TSharedPtr FAppleSentrySubsystem::StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) +TSharedPtr FAppleSentrySubsystem::StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp, bool bindToScope) { UE_LOG(LogSentrySdk, Log, TEXT("Setting transaction timestamp explicitly not supported on Mac/iOS.")); - return StartTransactionWithContext(context); + return StartTransactionWithContext(context, bindToScope); } -TSharedPtr FAppleSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) +TSharedPtr FAppleSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) { TSharedPtr transactionContextIOS = StaticCastSharedPtr(context); id transaction = [SENTRY_APPLE_CLASS(SentrySDK) startTransactionWithContext:transactionContextIOS->GetNativeObject() - customSamplingContext:FAppleSentryConverters::StringMapToNative(options)]; + bindToScope:options.BindToScope + customSamplingContext:FAppleSentryConverters::VariantMapToNative(options.CustomSamplingContext)]; return MakeShareable(new FAppleSentryTransaction(transaction)); } @@ -395,11 +414,7 @@ TSharedPtr FAppleSentrySubsystem::ContinueTrace(const sampleDecision = traceParts[2].Equals(TEXT("1")) ? kSentrySampleDecisionYes : kSentrySampleDecisionNo; } -#if PLATFORM_MAC - SentryId* traceId = [[SENTRY_APPLE_CLASS(_TtC6Sentry8SentryId) alloc] initWithUUIDString:traceParts[0].GetNSString()]; -#elif PLATFORM_IOS SentryId* traceId = [[SENTRY_APPLE_CLASS(SentryId) alloc] initWithUUIDString:traceParts[0].GetNSString()]; -#endif SentryTransactionContext* transactionContext = [[SENTRY_APPLE_CLASS(SentryTransactionContext) alloc] initWithName:@"" operation:@"default" traceId:traceId diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySubsystem.h b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySubsystem.h index abc05ae..a78b17d 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySubsystem.h +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentrySubsystem.h @@ -22,7 +22,7 @@ class FAppleSentrySubsystem : public ISentrySubsystem virtual TSharedPtr CaptureEvent(TSharedPtr event) override; virtual TSharedPtr CaptureEventWithScope(TSharedPtr event, const FSentryScopeDelegate& onConfigureScope) override; virtual TSharedPtr CaptureEnsure(const FString& type, const FString& message) override; - virtual void CaptureUserFeedback(TSharedPtr userFeedback) override; + virtual void CaptureFeedback(TSharedPtr feedback) override; virtual void SetUser(TSharedPtr user) override; virtual void RemoveUser() override; virtual void SetContext(const FString& key, const TMap& values) override; @@ -31,10 +31,13 @@ class FAppleSentrySubsystem : public ISentrySubsystem virtual void SetLevel(ESentryLevel level) override; virtual void StartSession() override; virtual void EndSession() override; - virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) override; - virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) override; - virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) override; - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) override; + virtual void GiveUserConsent() override; + virtual void RevokeUserConsent() override; + virtual EUserConsent GetUserConsent() const override; + virtual TSharedPtr StartTransaction(const FString& name, const FString& operation, bool bindToScope) override; + virtual TSharedPtr StartTransactionWithContext(TSharedPtr context, bool bindToScope) override; + virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp, bool bindToScope) override; + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) override; virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) override; virtual void HandleAssert() override {} diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryTransaction.cpp b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryTransaction.cpp index 555a686..827588a 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryTransaction.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryTransaction.cpp @@ -6,6 +6,7 @@ #include "Infrastructure/AppleSentryConverters.h" #include "Convenience/AppleSentryInclude.h" +#include "Convenience/AppleSentryMacro.h" #include "SentryDefines.h" @@ -25,16 +26,24 @@ id FAppleSentryTransaction::GetNativeObject() return TransactionApple; } -TSharedPtr FAppleSentryTransaction::StartChildSpan(const FString& operation, const FString& desctiption) +TSharedPtr FAppleSentryTransaction::StartChildSpan(const FString& operation, const FString& desctiption, bool bindToScope) { id span = [TransactionApple startChildWithOperation:operation.GetNSString() description:desctiption.GetNSString()]; + + if (bindToScope) + { + [SENTRY_APPLE_CLASS(SentrySDK) configureScope:^(SentryScope* scope) { + scope.span = span; + }]; + } + return MakeShareable(new FAppleSentrySpan(span)); } -TSharedPtr FAppleSentryTransaction::StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) +TSharedPtr FAppleSentryTransaction::StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) { UE_LOG(LogSentrySdk, Log, TEXT("Starting child span with explicit timestamp not supported on Mac/iOS.")); - return StartChildSpan(operation, desctiption); + return StartChildSpan(operation, desctiption, bindToScope); } void FAppleSentryTransaction::Finish() diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryTransaction.h b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryTransaction.h index 2dadc0d..f1ce15a 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryTransaction.h +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryTransaction.h @@ -14,8 +14,8 @@ class FAppleSentryTransaction : public ISentryTransaction id GetNativeObject(); - virtual TSharedPtr StartChildSpan(const FString& operation, const FString& desctiption) override; - virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) override; + virtual TSharedPtr StartChildSpan(const FString& operation, const FString& desctiption, bool bindToScope) override; + virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) override; virtual void Finish() override; virtual void FinishWithTimestamp(int64 timestamp) override; virtual bool IsFinished() const override; diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryUserFeedback.cpp b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryUserFeedback.cpp deleted file mode 100644 index d5d828b..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryUserFeedback.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#include "AppleSentryUserFeedback.h" - -#include "AppleSentryId.h" - -#include "Convenience/AppleSentryInclude.h" -#include "Convenience/AppleSentryMacro.h" - -FAppleSentryUserFeedback::FAppleSentryUserFeedback(TSharedPtr eventId) - : EventId(eventId) -{ - TSharedPtr idIOS = StaticCastSharedPtr(eventId); - SentryId* id = idIOS->GetNativeObject(); - -#if PLATFORM_MAC - UserFeedbackApple = [[SENTRY_APPLE_CLASS(_TtC6Sentry14SentryFeedback) alloc] initWithMessage:@"" - name:nil - email:nil - source:SentryFeedbackSourceCustom - associatedEventId:id - attachments:nil]; -#elif PLATFORM_IOS - UserFeedbackApple = [[SENTRY_APPLE_CLASS(SentryFeedback) alloc] initWithMessage:@"" - name:nil - email:nil - source:SentryFeedbackSourceCustom - associatedEventId:id - attachments:nil]; -#endif -} - -FAppleSentryUserFeedback::~FAppleSentryUserFeedback() -{ - // Put custom destructor logic here if needed -} - -void FAppleSentryUserFeedback::SetNativeObject(SentryFeedback* feedback) -{ - UserFeedbackApple = feedback; -} - -SentryFeedback* FAppleSentryUserFeedback::GetNativeObject() -{ - return UserFeedbackApple; -} - -void FAppleSentryUserFeedback::SetName(const FString& name) -{ - Name = name; -} - -FString FAppleSentryUserFeedback::GetName() const -{ - return Name; -} - -void FAppleSentryUserFeedback::SetEmail(const FString& email) -{ - Email = email; -} - -FString FAppleSentryUserFeedback::GetEmail() const -{ - return Email; -} - -void FAppleSentryUserFeedback::SetComment(const FString& comment) -{ - Comment = comment; -} - -FString FAppleSentryUserFeedback::GetComment() const -{ - return Comment; -} - -SentryFeedback* FAppleSentryUserFeedback::CreateSentryFeedback(TSharedPtr feedback) -{ - TSharedPtr idIOS = StaticCastSharedPtr(feedback->EventId); - SentryId* id = idIOS->GetNativeObject(); - -#if PLATFORM_MAC - return [[SENTRY_APPLE_CLASS(_TtC6Sentry14SentryFeedback) alloc] initWithMessage:feedback->Comment.GetNSString() - name:feedback->Name.GetNSString() - email:feedback->Email.GetNSString() - source:SentryFeedbackSourceCustom - associatedEventId:id - attachments:nil]; -#elif PLATFORM_IOS - return [[SENTRY_APPLE_CLASS(SentryFeedback) alloc] initWithMessage:feedback->Comment.GetNSString() - name:feedback->Name.GetNSString() - email:feedback->Email.GetNSString() - source:SentryFeedbackSourceCustom - associatedEventId:id - attachments:nil]; -#endif -} diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryUserFeedback.h b/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryUserFeedback.h deleted file mode 100644 index 931feb6..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/AppleSentryUserFeedback.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#pragma once - -#include "Interface/SentryUserFeedbackInterface.h" - -class ISentryId; - -@class SentryFeedback; - -class FAppleSentryUserFeedback : public ISentryUserFeedback -{ -public: - FAppleSentryUserFeedback(TSharedPtr eventId); - virtual ~FAppleSentryUserFeedback() override; - - void SetNativeObject(SentryFeedback* feedback); - SentryFeedback* GetNativeObject(); - - virtual void SetName(const FString& name) override; - virtual FString GetName() const override; - virtual void SetEmail(const FString& email) override; - virtual FString GetEmail() const override; - virtual void SetComment(const FString& comment) override; - virtual FString GetComment() const override; - - static SentryFeedback* CreateSentryFeedback(TSharedPtr feedback); - -private: - TSharedPtr EventId; - FString Name; - FString Email; - FString Comment; - - SentryFeedback* UserFeedbackApple; -}; - -typedef FAppleSentryUserFeedback FPlatformSentryUserFeedback; \ No newline at end of file diff --git a/Plugins/Sentry/Source/Sentry/Private/Apple/Convenience/AppleSentryMacro.h b/Plugins/Sentry/Source/Sentry/Private/Apple/Convenience/AppleSentryMacro.h index 4e88d88..f0eb919 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Apple/Convenience/AppleSentryMacro.h +++ b/Plugins/Sentry/Source/Sentry/Private/Apple/Convenience/AppleSentryMacro.h @@ -8,7 +8,7 @@ #if PLATFORM_MAC #define SENTRY_APPLE_CLASS(Name) \ - (__bridge Class) dlsym(FSentryModule::Get().GetSentryLibHandle(), "OBJC_CLASS_$_" #Name) + FSentryModule::Get().GetSentryCocoaClass(#Name) #elif PLATFORM_IOS #define SENTRY_APPLE_CLASS(Name) \ Name diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryFeedback.cpp b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryFeedback.cpp new file mode 100644 index 0000000..38379de --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryFeedback.cpp @@ -0,0 +1,72 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "GenericPlatformSentryFeedback.h" + +#include "Infrastructure/GenericPlatformSentryConverters.h" + +#if USE_SENTRY_NATIVE + +FGenericPlatformSentryFeedback::FGenericPlatformSentryFeedback() +{ + Feedback = sentry_value_new_object(); +} + +FGenericPlatformSentryFeedback::FGenericPlatformSentryFeedback(const FString& message) +{ + Feedback = sentry_value_new_object(); + sentry_value_set_by_key(Feedback, "message", sentry_value_new_string(TCHAR_TO_UTF8(*message))); +} + +FGenericPlatformSentryFeedback::~FGenericPlatformSentryFeedback() +{ + // Put custom destructor logic here if needed +} + +sentry_value_t FGenericPlatformSentryFeedback::GetNativeObject() +{ + return Feedback; +} + +FString FGenericPlatformSentryFeedback::GetMessage() const +{ + sentry_value_t message = sentry_value_get_by_key(Feedback, "message"); + return FString(sentry_value_as_string(message)); +} + +void FGenericPlatformSentryFeedback::SetName(const FString& name) +{ + sentry_value_set_by_key(Feedback, "name", sentry_value_new_string(TCHAR_TO_UTF8(*name))); +} + +FString FGenericPlatformSentryFeedback::GetName() const +{ + sentry_value_t username = sentry_value_get_by_key(Feedback, "name"); + return FString(sentry_value_as_string(username)); +} + +void FGenericPlatformSentryFeedback::SetContactEmail(const FString& email) +{ + sentry_value_set_by_key(Feedback, "contact_email", sentry_value_new_string(TCHAR_TO_UTF8(*email))); +} + +FString FGenericPlatformSentryFeedback::GetContactEmail() const +{ + sentry_value_t email = sentry_value_get_by_key(Feedback, "contact_email"); + return FString(sentry_value_as_string(email)); +} + +void FGenericPlatformSentryFeedback::SetAssociatedEvent(const FString& eventId) +{ + if (eventId.IsEmpty()) + return; + + sentry_value_set_by_key(Feedback, "associated_event_id", sentry_value_new_string(TCHAR_TO_UTF8(*eventId))); +} + +FString FGenericPlatformSentryFeedback::GetAssociatedEvent() const +{ + sentry_value_t comment = sentry_value_get_by_key(Feedback, "associated_event_id"); + return FString(sentry_value_as_string(comment)); +} + +#endif diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryFeedback.h b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryFeedback.h new file mode 100644 index 0000000..083ba82 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryFeedback.h @@ -0,0 +1,34 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "Convenience/GenericPlatformSentryInclude.h" + +#include "Interface/SentryFeedbackInterface.h" + +#if USE_SENTRY_NATIVE + +class FGenericPlatformSentryFeedback : public ISentryFeedback +{ +public: + FGenericPlatformSentryFeedback(); + FGenericPlatformSentryFeedback(const FString& message); + virtual ~FGenericPlatformSentryFeedback() override; + + sentry_value_t GetNativeObject(); + + virtual FString GetMessage() const override; + virtual void SetName(const FString& name) override; + virtual FString GetName() const override; + virtual void SetContactEmail(const FString& email) override; + virtual FString GetContactEmail() const override; + virtual void SetAssociatedEvent(const FString& eventId) override; + virtual FString GetAssociatedEvent() const override; + +private: + sentry_value_t Feedback; +}; + +typedef FGenericPlatformSentryFeedback FPlatformSentryFeedback; + +#endif diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryId.cpp b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryId.cpp index 110b750..2b91c84 100644 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryId.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryId.cpp @@ -33,7 +33,11 @@ FString FGenericPlatformSentryId::ToString() const { char IdString[37]; sentry_uuid_as_string(&Id, IdString); - return FString(IdString); + + FString SanitizedIdString(IdString); + SanitizedIdString.ReplaceInline(TEXT("-"), TEXT("")); + + return SanitizedIdString; } #endif diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp new file mode 100644 index 0000000..d4703f4 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.cpp @@ -0,0 +1,33 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "GenericPlatformSentrySamplingContext.h" +#include "GenericPlatformSentryTransactionContext.h" + +#include "Infrastructure/GenericPlatformSentryConverters.h" + +#include "Convenience/GenericPlatformSentryInclude.h" + +#if USE_SENTRY_NATIVE + +FGenericPlatformSentrySamplingContext::FGenericPlatformSentrySamplingContext(sentry_transaction_context_t* transactionContext, sentry_value_t customSamplingContext) +{ + TransactionContext = transactionContext; + CustomSamplingContext = customSamplingContext; +} + +FGenericPlatformSentrySamplingContext::~FGenericPlatformSentrySamplingContext() +{ + // Put custom destructor logic here if needed +} + +TSharedPtr FGenericPlatformSentrySamplingContext::GetTransactionContext() const +{ + return MakeShareable(new FGenericPlatformSentryTransactionContext(TransactionContext)); +} + +TMap FGenericPlatformSentrySamplingContext::GetCustomSamplingContext() const +{ + return FGenericPlatformSentryConverters::VariantToUnreal(CustomSamplingContext); +} + +#endif diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h new file mode 100644 index 0000000..b3ea660 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySamplingContext.h @@ -0,0 +1,27 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "Convenience/GenericPlatformSentryInclude.h" + +#include "Interface/SentrySamplingContextInterface.h" + +#if USE_SENTRY_NATIVE + +class FGenericPlatformSentrySamplingContext : public ISentrySamplingContext +{ +public: + FGenericPlatformSentrySamplingContext(sentry_transaction_context_t* transactionContext, sentry_value_t customSamplingContext); + virtual ~FGenericPlatformSentrySamplingContext() override; + + virtual TSharedPtr GetTransactionContext() const override; + virtual TMap GetCustomSamplingContext() const override; + +private: + sentry_transaction_context_t* TransactionContext; + sentry_value_t CustomSamplingContext; +}; + +typedef FGenericPlatformSentrySamplingContext FPlatformSentrySamplingContext; + +#endif diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySpan.cpp b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySpan.cpp index be9ca27..5f96036 100644 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySpan.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySpan.cpp @@ -23,10 +23,15 @@ sentry_span_t* FGenericPlatformSentrySpan::GetNativeObject() return Span; } -TSharedPtr FGenericPlatformSentrySpan::StartChild(const FString& operation, const FString& description) +TSharedPtr FGenericPlatformSentrySpan::StartChild(const FString& operation, const FString& description, bool bindToScope) { if (sentry_span_t* nativeSpan = sentry_span_start_child(Span, TCHAR_TO_ANSI(*operation), TCHAR_TO_ANSI(*description))) { + if (bindToScope) + { + sentry_set_span(nativeSpan); + } + return MakeShareable(new FGenericPlatformSentrySpan(nativeSpan)); } else @@ -35,10 +40,15 @@ TSharedPtr FGenericPlatformSentrySpan::StartChild(const FString& op } } -TSharedPtr FGenericPlatformSentrySpan::StartChildWithTimestamp(const FString& operation, const FString& description, int64 timestamp) +TSharedPtr FGenericPlatformSentrySpan::StartChildWithTimestamp(const FString& operation, const FString& description, int64 timestamp, bool bindToScope) { if (sentry_span_t* nativeSpan = sentry_span_start_child_ts(Span, TCHAR_TO_ANSI(*operation), TCHAR_TO_ANSI(*description), timestamp)) { + if (bindToScope) + { + sentry_set_span(nativeSpan); + } + return MakeShareable(new FGenericPlatformSentrySpan(nativeSpan)); } else diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySpan.h b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySpan.h index 1813a7a..3ef9e04 100644 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySpan.h +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySpan.h @@ -18,8 +18,8 @@ class FGenericPlatformSentrySpan : public ISentrySpan sentry_span_t* GetNativeObject(); - virtual TSharedPtr StartChild(const FString& operation, const FString& description) override; - virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& description, int64 timestamp) override; + virtual TSharedPtr StartChild(const FString& operation, const FString& description, bool bindToScope) override; + virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& description, int64 timestamp, bool bindToScope) override; virtual void Finish() override; virtual void FinishWithTimestamp(int64 timestamp) override; virtual bool IsFinished() const override; diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index a4cf4d7..6d76631 100644 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -4,12 +4,13 @@ #include "GenericPlatformSentryAttachment.h" #include "GenericPlatformSentryBreadcrumb.h" #include "GenericPlatformSentryEvent.h" +#include "GenericPlatformSentryFeedback.h" #include "GenericPlatformSentryId.h" +#include "GenericPlatformSentrySamplingContext.h" #include "GenericPlatformSentryScope.h" #include "GenericPlatformSentryTransaction.h" #include "GenericPlatformSentryTransactionContext.h" #include "GenericPlatformSentryUser.h" -#include "GenericPlatformSentryUserFeedback.h" #include "SentryBeforeBreadcrumbHandler.h" #include "SentryBeforeSendHandler.h" @@ -17,8 +18,9 @@ #include "SentryDefines.h" #include "SentryEvent.h" #include "SentryModule.h" +#include "SentrySamplingContext.h" #include "SentrySettings.h" - +#include "SentrySubsystem.h" #include "SentryTraceSampler.h" #include "Utils/SentryFileUtils.h" @@ -30,6 +32,7 @@ #include "GenericPlatform/CrashReporter/GenericPlatformSentryCrashContext.h" #include "GenericPlatform/CrashReporter/GenericPlatformSentryCrashReporter.h" +#include "Engine/Engine.h" #include "GenericPlatform/GenericPlatformOutputDevices.h" #include "HAL/ExceptionHandling.h" #include "HAL/FileManager.h" @@ -96,6 +99,24 @@ void PrintVerboseLog(sentry_level_t level, const char* message, va_list args, vo } } +/* static */ double FGenericPlatformSentrySubsystem::HandleTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled) +{ + if (GEngine) + { + USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem(); + if (SentrySubsystem && SentrySubsystem->IsEnabled()) + { + TSharedPtr NativeSubsystem = StaticCastSharedPtr(SentrySubsystem->GetNativeObject()); + if (NativeSubsystem) + { + return NativeSubsystem->OnTraceSampling(transaction_ctx, custom_sampling_ctx, parent_sampled); + } + } + } + + return parent_sampled != nullptr ? *parent_sampled : 0.0; +} + sentry_value_t FGenericPlatformSentrySubsystem::OnBeforeSend(sentry_value_t event, void* hint, void* closure, bool isCrash) { if (!closure || this != closure) @@ -187,6 +208,42 @@ sentry_value_t FGenericPlatformSentrySubsystem::OnCrash(const sentry_ucontext_t* return OnBeforeSend(event, nullptr, closure, true); } +double FGenericPlatformSentrySubsystem::OnTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled) +{ + USentryTraceSampler* Sampler = GetTraceSampler(); + if (!Sampler) + { + // If custom sampler isn't set skip further processing + return parent_sampled != nullptr ? *parent_sampled : 0.0; + } + + if (FUObjectThreadContext::Get().IsRoutingPostLoad) + { + UE_LOG(LogSentrySdk, Log, TEXT("Executing traces sampler is not allowed during object post-loading.")); + return parent_sampled != nullptr ? *parent_sampled : 0.0; + } + + if (IsGarbageCollecting()) + { + // If traces sampling happens during garbage collection we can't instantiate UObjects safely or obtain a GC lock + // since it will cause a deadlock (see https://github.com/getsentry/sentry-unreal/issues/850). + // In this case event will be reported without calling a `beforeSend` handler. + UE_LOG(LogSentrySdk, Log, TEXT("Executing traces sampler is not allowed during garbage collection.")); + return parent_sampled != nullptr ? *parent_sampled : 0.0; + } + + USentrySamplingContext* Context = USentrySamplingContext::Create( + MakeShareable(new FGenericPlatformSentrySamplingContext(const_cast(transaction_ctx), custom_sampling_ctx))); + + float samplingValue; + if (Sampler->Sample(Context, samplingValue)) + { + return samplingValue; + } + + return parent_sampled != nullptr ? *parent_sampled : 0.0; +} + void FGenericPlatformSentrySubsystem::InitCrashReporter(const FString& release, const FString& environment) { crashReporter = MakeShareable(new FGenericPlatformSentryCrashReporter); @@ -233,6 +290,7 @@ void FGenericPlatformSentrySubsystem::AddByteAttachment(TSharedPtrUseProxy) { - sentry_options_set_http_proxy(options, TCHAR_TO_ANSI(*settings->ProxyUrl)); + sentry_options_set_proxy(options, TCHAR_TO_ANSI(*settings->ProxyUrl)); } if (settings->EnableTracing && settings->SamplingType == ESentryTracesSamplingType::UniformSampleRate) @@ -290,7 +349,7 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se } if (settings->EnableTracing && settings->SamplingType == ESentryTracesSamplingType::TracesSampler) { - UE_LOG(LogSentrySdk, Warning, TEXT("The Native SDK doesn't currently support sampling functions")); + sentry_options_set_traces_sampler(options, HandleTraceSampling); } ConfigureHandlerPath(options); @@ -298,10 +357,9 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se ConfigureCertsPath(options); ConfigureNetworkConnectFunc(options); - sentry_options_set_release(options, TCHAR_TO_ANSI(settings->OverrideReleaseName ? *settings->Release : *settings->GetFormattedReleaseName())); - sentry_options_set_dsn(options, TCHAR_TO_ANSI(*settings->GetEffectiveDsn())); - sentry_options_set_environment(options, TCHAR_TO_ANSI(*settings->Environment)); + sentry_options_set_release(options, TCHAR_TO_ANSI(*settings->GetEffectiveRelease())); + sentry_options_set_environment(options, TCHAR_TO_ANSI(*settings->GetEffectiveEnvironment())); sentry_options_set_dist(options, TCHAR_TO_ANSI(*settings->Dist)); sentry_options_set_logger(options, PrintVerboseLog, nullptr); sentry_options_set_debug(options, settings->Debug); @@ -313,6 +371,11 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se sentry_options_set_shutdown_timeout(options, 3000); sentry_options_set_crashpad_wait_for_upload(options, settings->CrashpadWaitForUpload); + if (settings->bRequireUserConsent) + { + sentry_options_set_require_user_consent(options, 1); + } + int initResult = sentry_init(options); UE_LOG(LogSentrySdk, Log, TEXT("Sentry initialization completed with result %d (0 on success)."), initResult); @@ -323,6 +386,20 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se isStackTraceEnabled = settings->AttachStacktrace; isPiiAttachmentEnabled = settings->SendDefaultPii; + + // Best-effort at writing user consent to disk so that user consent can change at runtime and persist + // We should never have a valid user consent state return "Unknown", so assume that no consent value is written if we see this + if (settings->bRequireUserConsent && GetUserConsent() == EUserConsent::Unknown) + { + if (settings->bDefaultUserConsentGiven) + { + GiveUserConsent(); + } + else + { + RevokeUserConsent(); + } + } } void FGenericPlatformSentrySubsystem::Close() @@ -518,10 +595,10 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureEnsure(const FStri return MakeShareable(new FGenericPlatformSentryId(id)); } -void FGenericPlatformSentrySubsystem::CaptureUserFeedback(TSharedPtr InUserFeedback) +void FGenericPlatformSentrySubsystem::CaptureFeedback(TSharedPtr feedback) { - TSharedPtr userFeedback = StaticCastSharedPtr(InUserFeedback); - sentry_capture_user_feedback(userFeedback->GetNativeObject()); + TSharedPtr Feedback = StaticCastSharedPtr(feedback); + sentry_capture_feedback(Feedback->GetNativeObject()); } void FGenericPlatformSentrySubsystem::SetUser(TSharedPtr InUser) @@ -598,19 +675,47 @@ void FGenericPlatformSentrySubsystem::EndSession() sentry_end_session(); } -TSharedPtr FGenericPlatformSentrySubsystem::StartTransaction(const FString& name, const FString& operation) +void FGenericPlatformSentrySubsystem::GiveUserConsent() +{ + sentry_user_consent_give(); +} + +void FGenericPlatformSentrySubsystem::RevokeUserConsent() +{ + sentry_user_consent_revoke(); +} + +EUserConsent FGenericPlatformSentrySubsystem::GetUserConsent() const +{ + switch (sentry_user_consent_get()) + { + case 0: + return EUserConsent::Revoked; + case 1: + return EUserConsent::Given; + default: + return EUserConsent::Unknown; + } +} + +TSharedPtr FGenericPlatformSentrySubsystem::StartTransaction(const FString& name, const FString& operation, bool bindToScope) { TSharedPtr transactionContext = MakeShareable(new FGenericPlatformSentryTransactionContext(name, operation)); - return StartTransactionWithContext(transactionContext); + return StartTransactionWithContext(transactionContext, bindToScope); } -TSharedPtr FGenericPlatformSentrySubsystem::StartTransactionWithContext(TSharedPtr context) +TSharedPtr FGenericPlatformSentrySubsystem::StartTransactionWithContext(TSharedPtr context, bool bindToScope) { if (TSharedPtr platformTransactionContext = StaticCastSharedPtr(context)) { if (sentry_transaction_t* nativeTransaction = sentry_transaction_start(platformTransactionContext->GetNativeObject(), sentry_value_new_null())) { + if (bindToScope) + { + sentry_set_transaction_object(nativeTransaction); + } + return MakeShareable(new FGenericPlatformSentryTransaction(nativeTransaction)); } } @@ -618,12 +723,17 @@ TSharedPtr FGenericPlatformSentrySubsystem::StartTransaction return nullptr; } -TSharedPtr FGenericPlatformSentrySubsystem::StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) +TSharedPtr FGenericPlatformSentrySubsystem::StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp, bool bindToScope) { if (TSharedPtr platformTransactionContext = StaticCastSharedPtr(context)) { if (sentry_transaction_t* nativeTransaction = sentry_transaction_start_ts(platformTransactionContext->GetNativeObject(), sentry_value_new_null(), timestamp)) { + if (bindToScope) + { + sentry_set_transaction_object(nativeTransaction); + } + return MakeShareable(new FGenericPlatformSentryTransaction(nativeTransaction)); } } @@ -631,10 +741,22 @@ TSharedPtr FGenericPlatformSentrySubsystem::StartTransaction return nullptr; } -TSharedPtr FGenericPlatformSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) +TSharedPtr FGenericPlatformSentrySubsystem::StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) { - UE_LOG(LogSentrySdk, Log, TEXT("Transaction options currently not supported (and therefore ignored) on generic platform.")); - return StartTransactionWithContext(context); + if (TSharedPtr platformTransactionContext = StaticCastSharedPtr(context)) + { + if (sentry_transaction_t* nativeTransaction = sentry_transaction_start(platformTransactionContext->GetNativeObject(), FGenericPlatformSentryConverters::VariantMapToNative(options.CustomSamplingContext))) + { + if (options.BindToScope) + { + sentry_set_transaction_object(nativeTransaction); + } + + return MakeShareable(new FGenericPlatformSentryTransaction(nativeTransaction)); + } + } + + return nullptr; } TSharedPtr FGenericPlatformSentrySubsystem::ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) @@ -658,6 +780,11 @@ USentryBeforeBreadcrumbHandler* FGenericPlatformSentrySubsystem::GetBeforeBreadc return beforeBreadcrumb; } +USentryTraceSampler* FGenericPlatformSentrySubsystem::GetTraceSampler() +{ + return sampler; +} + void FGenericPlatformSentrySubsystem::TryCaptureScreenshot() { const FString& ScreenshotPath = GetScreenshotPath(); diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index afa7d95..a2edba4 100644 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -34,7 +34,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual TSharedPtr CaptureEvent(TSharedPtr event) override; virtual TSharedPtr CaptureEventWithScope(TSharedPtr event, const FSentryScopeDelegate& onScopeConfigure) override; virtual TSharedPtr CaptureEnsure(const FString& type, const FString& message) override; - virtual void CaptureUserFeedback(TSharedPtr userFeedback) override; + virtual void CaptureFeedback(TSharedPtr feedback) override; virtual void SetUser(TSharedPtr user) override; virtual void RemoveUser() override; virtual void SetContext(const FString& key, const TMap& values) override; @@ -43,16 +43,20 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual void SetLevel(ESentryLevel level) override; virtual void StartSession() override; virtual void EndSession() override; - virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) override; - virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) override; - virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) override; - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) override; + virtual void GiveUserConsent() override; + virtual void RevokeUserConsent() override; + virtual EUserConsent GetUserConsent() const override; + virtual TSharedPtr StartTransaction(const FString& name, const FString& operation, bool bindToScope) override; + virtual TSharedPtr StartTransactionWithContext(TSharedPtr context, bool bindToScope) override; + virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp, bool bindToScope) override; + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) override; virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) override; virtual void HandleAssert() override {} USentryBeforeSendHandler* GetBeforeSendHandler(); USentryBeforeBreadcrumbHandler* GetBeforeBreadcrumbHandler(); + USentryTraceSampler* GetTraceSampler(); void TryCaptureScreenshot(); void TryCaptureGpuDump(); @@ -72,6 +76,7 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual sentry_value_t OnBeforeSend(sentry_value_t event, void* hint, void* closure, bool isCrash); virtual sentry_value_t OnBeforeBreadcrumb(sentry_value_t breadcrumb, void* hint, void* closure); virtual sentry_value_t OnCrash(const sentry_ucontext_t* uctx, sentry_value_t event, void* closure); + virtual double OnTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled); void InitCrashReporter(const FString& release, const FString& environment); @@ -87,9 +92,11 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem static sentry_value_t HandleBeforeSend(sentry_value_t event, void* hint, void* closure); static sentry_value_t HandleBeforeBreadcrumb(sentry_value_t breadcrumb, void* hint, void* closure); static sentry_value_t HandleOnCrash(const sentry_ucontext_t* uctx, sentry_value_t event, void* closure); + static double HandleTraceSampling(const sentry_transaction_context_t* transaction_ctx, sentry_value_t custom_sampling_ctx, const int* parent_sampled); USentryBeforeSendHandler* beforeSend; USentryBeforeBreadcrumbHandler* beforeBreadcrumb; + USentryTraceSampler* sampler; TSharedPtr crashReporter; diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransaction.cpp b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransaction.cpp index 917c377..babce61 100644 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransaction.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransaction.cpp @@ -24,10 +24,15 @@ sentry_transaction_t* FGenericPlatformSentryTransaction::GetNativeObject() return Transaction; } -TSharedPtr FGenericPlatformSentryTransaction::StartChildSpan(const FString& operation, const FString& description) +TSharedPtr FGenericPlatformSentryTransaction::StartChildSpan(const FString& operation, const FString& description, bool bindToScope) { if (sentry_span_t* nativeSpan = sentry_transaction_start_child(Transaction, TCHAR_TO_ANSI(*operation), TCHAR_TO_ANSI(*description))) { + if (bindToScope) + { + sentry_set_span(nativeSpan); + } + return MakeShareable(new FGenericPlatformSentrySpan(nativeSpan)); } else @@ -36,10 +41,15 @@ TSharedPtr FGenericPlatformSentryTransaction::StartChildSpan(const } } -TSharedPtr FGenericPlatformSentryTransaction::StartChildSpanWithTimestamp(const FString& operation, const FString& description, int64 timestamp) +TSharedPtr FGenericPlatformSentryTransaction::StartChildSpanWithTimestamp(const FString& operation, const FString& description, int64 timestamp, bool bindToScope) { if (sentry_span_t* nativeSpan = sentry_transaction_start_child_ts(Transaction, TCHAR_TO_ANSI(*operation), TCHAR_TO_ANSI(*description), timestamp)) { + if (bindToScope) + { + sentry_set_span(nativeSpan); + } + return MakeShareable(new FGenericPlatformSentrySpan(nativeSpan)); } else diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransaction.h b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransaction.h index 01fde20..936e150 100644 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransaction.h +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransaction.h @@ -18,8 +18,8 @@ class FGenericPlatformSentryTransaction : public ISentryTransaction sentry_transaction_t* GetNativeObject(); - virtual TSharedPtr StartChildSpan(const FString& operation, const FString& description) override; - virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& description, int64 timestamp) override; + virtual TSharedPtr StartChildSpan(const FString& operation, const FString& description, bool bindToScope) override; + virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& description, int64 timestamp, bool bindToScope) override; virtual void Finish() override; virtual void FinishWithTimestamp(int64 timestamp) override; virtual bool IsFinished() const override; diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransactionContext.cpp b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransactionContext.cpp index c38cf7c..15ebe02 100644 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransactionContext.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryTransactionContext.cpp @@ -19,16 +19,12 @@ FGenericPlatformSentryTransactionContext::FGenericPlatformSentryTransactionConte FString FGenericPlatformSentryTransactionContext::GetName() const { - // no corresponding implementation in sentry-native - UE_LOG(LogSentrySdk, Warning, TEXT("The native SDK doesn't currently support transaction's context GetName function")); - return FString(); + return FString(sentry_transaction_context_get_name(TransactionContext)); } FString FGenericPlatformSentryTransactionContext::GetOperation() const { - // no corresponding implementation in sentry-native - UE_LOG(LogSentrySdk, Warning, TEXT("The native SDK doesn't currently support transaction's context GetOperation function")); - return FString(); + return FString(sentry_transaction_context_get_operation(TransactionContext)); } sentry_transaction_context_t* FGenericPlatformSentryTransactionContext::GetNativeObject() diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryUserFeedback.cpp b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryUserFeedback.cpp deleted file mode 100644 index c24b414..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryUserFeedback.cpp +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#include "GenericPlatformSentryUserFeedback.h" - -#include "GenericPlatformSentryId.h" - -#include "Infrastructure/GenericPlatformSentryConverters.h" - -#if USE_SENTRY_NATIVE - -FGenericPlatformSentryUserFeedback::FGenericPlatformSentryUserFeedback() -{ - UserFeedback = sentry_value_new_object(); -} - -FGenericPlatformSentryUserFeedback::FGenericPlatformSentryUserFeedback(TSharedPtr eventId) -{ - UserFeedback = sentry_value_new_object(); - sentry_value_set_by_key(UserFeedback, "event_id", sentry_value_new_string(TCHAR_TO_ANSI(*eventId->ToString()))); -} - -FGenericPlatformSentryUserFeedback::~FGenericPlatformSentryUserFeedback() -{ - // Put custom destructor logic here if needed -} - -sentry_value_t FGenericPlatformSentryUserFeedback::GetNativeObject() -{ - return UserFeedback; -} - -void FGenericPlatformSentryUserFeedback::SetName(const FString& name) -{ - sentry_value_set_by_key(UserFeedback, "name", sentry_value_new_string(TCHAR_TO_UTF8(*name))); -} - -FString FGenericPlatformSentryUserFeedback::GetName() const -{ - sentry_value_t username = sentry_value_get_by_key(UserFeedback, "name"); - return FString(sentry_value_as_string(username)); -} - -void FGenericPlatformSentryUserFeedback::SetEmail(const FString& email) -{ - sentry_value_set_by_key(UserFeedback, "email", sentry_value_new_string(TCHAR_TO_ANSI(*email))); -} - -FString FGenericPlatformSentryUserFeedback::GetEmail() const -{ - sentry_value_t email = sentry_value_get_by_key(UserFeedback, "email"); - return FString(sentry_value_as_string(email)); -} - -void FGenericPlatformSentryUserFeedback::SetComment(const FString& comment) -{ - sentry_value_set_by_key(UserFeedback, "comments", sentry_value_new_string(TCHAR_TO_UTF8(*comment))); -} - -FString FGenericPlatformSentryUserFeedback::GetComment() const -{ - sentry_value_t comment = sentry_value_get_by_key(UserFeedback, "comments"); - return FString(sentry_value_as_string(comment)); -} - -#endif diff --git a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryUserFeedback.h b/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryUserFeedback.h deleted file mode 100644 index 952d310..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryUserFeedback.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#pragma once - -#include "Convenience/GenericPlatformSentryInclude.h" - -#include "Interface/SentryUserFeedbackInterface.h" - -#if USE_SENTRY_NATIVE - -class ISentryId; - -class FGenericPlatformSentryUserFeedback : public ISentryUserFeedback -{ -public: - FGenericPlatformSentryUserFeedback(); - FGenericPlatformSentryUserFeedback(TSharedPtr eventId); - virtual ~FGenericPlatformSentryUserFeedback() override; - - sentry_value_t GetNativeObject(); - - virtual void SetName(const FString& name) override; - virtual FString GetName() const override; - virtual void SetEmail(const FString& email) override; - virtual FString GetEmail() const override; - virtual void SetComment(const FString& comment) override; - virtual FString GetComment() const override; - -private: - sentry_value_t UserFeedback; -}; - -typedef FGenericPlatformSentryUserFeedback FPlatformSentryUserFeedback; - -#endif diff --git a/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentryFeedback.h b/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentryFeedback.h new file mode 100644 index 0000000..61afb73 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentryFeedback.h @@ -0,0 +1,13 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#if PLATFORM_ANDROID +#include "Android/AndroidSentryFeedback.h" +#elif PLATFORM_APPLE +#include "Apple/AppleSentryFeedback.h" +#elif USE_SENTRY_NATIVE +#include "GenericPlatform/GenericPlatformSentryFeedback.h" +#else +#include "Null/NullSentryFeedback.h" +#endif diff --git a/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentrySamplingContext.h b/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentrySamplingContext.h index 9ef13fe..28c59a9 100644 --- a/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentrySamplingContext.h +++ b/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentrySamplingContext.h @@ -6,6 +6,8 @@ #include "Android/AndroidSentrySamplingContext.h" #elif PLATFORM_APPLE #include "Apple/AppleSentrySamplingContext.h" +#elif USE_SENTRY_NATIVE +#include "GenericPlatform/GenericPlatformSentrySamplingContext.h" #else #include "Null/NullSentrySamplingContext.h" #endif diff --git a/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentryUserFeedback.h b/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentryUserFeedback.h deleted file mode 100644 index baa89ad..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/HAL/PlatformSentryUserFeedback.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#pragma once - -#if PLATFORM_ANDROID -#include "Android/AndroidSentryUserFeedback.h" -#elif PLATFORM_APPLE -#include "Apple/AppleSentryUserFeedback.h" -#elif USE_SENTRY_NATIVE -#include "GenericPlatform/GenericPlatformSentryUserFeedback.h" -#else -#include "Null/NullSentryUserFeedback.h" -#endif - -#include "PlatformSentryId.h" - -static TSharedPtr CreateSharedSentryUserFeedback(const FString& EventId) -{ - TSharedPtr Id = MakeShareable(new FPlatformSentryId(EventId)); - - return MakeShareable(new FPlatformSentryUserFeedback(Id)); -} diff --git a/Plugins/Sentry/Source/Sentry/Private/Interface/SentryFeedbackInterface.h b/Plugins/Sentry/Source/Sentry/Private/Interface/SentryFeedbackInterface.h new file mode 100644 index 0000000..2a34344 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/Interface/SentryFeedbackInterface.h @@ -0,0 +1,19 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" + +class ISentryFeedback +{ +public: + virtual ~ISentryFeedback() = default; + + virtual FString GetMessage() const = 0; + virtual void SetName(const FString& name) = 0; + virtual FString GetName() const = 0; + virtual void SetContactEmail(const FString& email) = 0; + virtual FString GetContactEmail() const = 0; + virtual void SetAssociatedEvent(const FString& eventId) = 0; + virtual FString GetAssociatedEvent() const = 0; +}; \ No newline at end of file diff --git a/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySamplingContextInterface.h b/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySamplingContextInterface.h index e454be0..9ee535b 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySamplingContextInterface.h +++ b/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySamplingContextInterface.h @@ -4,6 +4,8 @@ #include "CoreMinimal.h" +#include "SentryVariant.h" + class ISentryTransactionContext; class ISentrySamplingContext @@ -12,5 +14,5 @@ class ISentrySamplingContext virtual ~ISentrySamplingContext() = default; virtual TSharedPtr GetTransactionContext() const = 0; - virtual TMap GetCustomSamplingContext() const = 0; + virtual TMap GetCustomSamplingContext() const = 0; }; \ No newline at end of file diff --git a/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySpanInterface.h b/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySpanInterface.h index 1cd7318..3dcc4a0 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySpanInterface.h +++ b/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySpanInterface.h @@ -10,8 +10,8 @@ class ISentrySpan public: virtual ~ISentrySpan() = default; - virtual TSharedPtr StartChild(const FString& operation, const FString& desctiption) = 0; - virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) = 0; + virtual TSharedPtr StartChild(const FString& operation, const FString& desctiption, bool bindToScope) = 0; + virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) = 0; virtual void Finish() = 0; virtual void FinishWithTimestamp(int64 timestamp) = 0; virtual bool IsFinished() const = 0; diff --git a/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySubsystemInterface.h b/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySubsystemInterface.h index 01bb109..a4c6080 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySubsystemInterface.h +++ b/Plugins/Sentry/Source/Sentry/Private/Interface/SentrySubsystemInterface.h @@ -5,12 +5,13 @@ #include "CoreMinimal.h" #include "SentryDataTypes.h" +#include "SentryTransactionOptions.h" #include "SentryVariant.h" class ISentryAttachment; class ISentryBreadcrumb; class ISentryEvent; -class ISentryUserFeedback; +class ISentryFeedback; class ISentryUser; class ISentryTransaction; class ISentryTransactionContext; @@ -45,7 +46,7 @@ class ISentrySubsystem virtual TSharedPtr CaptureEvent(TSharedPtr event) = 0; virtual TSharedPtr CaptureEventWithScope(TSharedPtr event, const FSentryScopeDelegate& onConfigureScope) = 0; virtual TSharedPtr CaptureEnsure(const FString& type, const FString& message) = 0; - virtual void CaptureUserFeedback(TSharedPtr userFeedback) = 0; + virtual void CaptureFeedback(TSharedPtr feedback) = 0; virtual void SetUser(TSharedPtr user) = 0; virtual void RemoveUser() = 0; virtual void SetContext(const FString& key, const TMap& values) = 0; @@ -54,10 +55,13 @@ class ISentrySubsystem virtual void SetLevel(ESentryLevel level) = 0; virtual void StartSession() = 0; virtual void EndSession() = 0; - virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) = 0; - virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) = 0; - virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) = 0; - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) = 0; + virtual void GiveUserConsent() = 0; + virtual void RevokeUserConsent() = 0; + virtual EUserConsent GetUserConsent() const = 0; + virtual TSharedPtr StartTransaction(const FString& name, const FString& operation, bool bindToScope) = 0; + virtual TSharedPtr StartTransactionWithContext(TSharedPtr context, bool bindToScope) = 0; + virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp, bool bindToScope) = 0; + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) = 0; virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) = 0; /** Unreal-specific methods that are not part of the platform's Sentry SDK API */ diff --git a/Plugins/Sentry/Source/Sentry/Private/Interface/SentryTransactionInterface.h b/Plugins/Sentry/Source/Sentry/Private/Interface/SentryTransactionInterface.h index 8e78f3e..c6021b4 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Interface/SentryTransactionInterface.h +++ b/Plugins/Sentry/Source/Sentry/Private/Interface/SentryTransactionInterface.h @@ -12,8 +12,8 @@ class ISentryTransaction public: virtual ~ISentryTransaction() = default; - virtual TSharedPtr StartChildSpan(const FString& operation, const FString& desctiption) = 0; - virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) = 0; + virtual TSharedPtr StartChildSpan(const FString& operation, const FString& desctiption, bool bindToScope) = 0; + virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) = 0; virtual void Finish() = 0; virtual void FinishWithTimestamp(int64 timestamp) = 0; virtual bool IsFinished() const = 0; diff --git a/Plugins/Sentry/Source/Sentry/Private/Interface/SentryUserFeedbackInterface.h b/Plugins/Sentry/Source/Sentry/Private/Interface/SentryUserFeedbackInterface.h deleted file mode 100644 index a967516..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/Interface/SentryUserFeedbackInterface.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#pragma once - -#include "CoreMinimal.h" - -class ISentryUserFeedback -{ -public: - virtual ~ISentryUserFeedback() = default; - - virtual void SetName(const FString& name) = 0; - virtual FString GetName() const = 0; - virtual void SetEmail(const FString& email) = 0; - virtual FString GetEmail() const = 0; - virtual void SetComment(const FString& comment) = 0; - virtual FString GetComment() const = 0; -}; \ No newline at end of file diff --git a/Plugins/Sentry/Source/Sentry/Private/Linux/LinuxSentrySubsystem.cpp b/Plugins/Sentry/Source/Sentry/Private/Linux/LinuxSentrySubsystem.cpp index 393f943..791f9b6 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Linux/LinuxSentrySubsystem.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Linux/LinuxSentrySubsystem.cpp @@ -16,7 +16,7 @@ void FLinuxSentrySubsystem::InitWithSettings(const USentrySettings* Settings, US { FGenericPlatformSentrySubsystem::InitWithSettings(Settings, BeforeSendHandler, BeforeBreadcrumbHandler, TraceSampler); - InitCrashReporter(Settings->Release, Settings->Environment); + InitCrashReporter(Settings->GetEffectiveRelease(), Settings->GetEffectiveEnvironment()); } void FLinuxSentrySubsystem::ConfigureHandlerPath(sentry_options_t* Options) diff --git a/Plugins/Sentry/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.cpp b/Plugins/Sentry/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.cpp index 451f79c..92f74c4 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Microsoft/MicrosoftSentrySubsystem.cpp @@ -31,10 +31,10 @@ void FMicrosoftSentrySubsystem::InitWithSettings(const USentrySettings* Settings if (FPlatformMisc::GetCrashHandlingType() == ECrashHandlingType::Default) { - InitCrashReporter(Settings->Release, Settings->Environment); + InitCrashReporter(Settings->GetEffectiveRelease(), Settings->GetEffectiveEnvironment()); } #else - InitCrashReporter(Settings->Release, Settings->Environment); + InitCrashReporter(Settings->GetEffectiveRelease(), Settings->GetEffectiveEnvironment()); #endif } diff --git a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryFeedback.h b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryFeedback.h new file mode 100644 index 0000000..4d27234 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryFeedback.h @@ -0,0 +1,25 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "Interface/SentryFeedbackInterface.h" + +class ISentryId; + +class FNullSentryFeedback final : public ISentryFeedback +{ +public: + FNullSentryFeedback(const FString& message) {} + + virtual ~FNullSentryFeedback() override = default; + + virtual FString GetMessage() const override { return TEXT(""); } + virtual void SetName(const FString& name) override {} + virtual FString GetName() const override { return TEXT(""); } + virtual void SetContactEmail(const FString& email) override {} + virtual FString GetContactEmail() const override { return TEXT(""); } + virtual void SetAssociatedEvent(const FString& eventId) override {} + virtual FString GetAssociatedEvent() const override { return TEXT(""); } +}; + +typedef FNullSentryFeedback FPlatformSentryFeedback; diff --git a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySamplingContext.h b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySamplingContext.h index 390e1f8..7a92f6c 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySamplingContext.h +++ b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySamplingContext.h @@ -10,7 +10,7 @@ class FNullSentrySamplingContext final : public ISentrySamplingContext virtual ~FNullSentrySamplingContext() override = default; virtual TSharedPtr GetTransactionContext() const override { return nullptr; } - virtual TMap GetCustomSamplingContext() const override { return {}; } + virtual TMap GetCustomSamplingContext() const override { return {}; } }; typedef FNullSentrySamplingContext FPlatformSentrySamplingContext; diff --git a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySpan.h b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySpan.h index a86e11c..9ff739b 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySpan.h +++ b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySpan.h @@ -9,8 +9,8 @@ class FNullSentrySpan final : public ISentrySpan public: virtual ~FNullSentrySpan() override = default; - virtual TSharedPtr StartChild(const FString& operation, const FString& desctiption) override { return nullptr; } - virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) override { return nullptr; } + virtual TSharedPtr StartChild(const FString& operation, const FString& desctiption, bool bindToScope) override { return nullptr; } + virtual TSharedPtr StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) override { return nullptr; } virtual void Finish() override {} virtual void FinishWithTimestamp(int64 timestamp) override {} virtual bool IsFinished() const override { return false; } diff --git a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySubsystem.h b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySubsystem.h index 5d6626f..0b6c4d5 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySubsystem.h +++ b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentrySubsystem.h @@ -24,7 +24,7 @@ class FNullSentrySubsystem : public ISentrySubsystem virtual TSharedPtr CaptureEvent(TSharedPtr event) override { return nullptr; } virtual TSharedPtr CaptureEventWithScope(TSharedPtr event, const FSentryScopeDelegate& onScopeConfigure) override { return nullptr; } virtual TSharedPtr CaptureEnsure(const FString& type, const FString& message) override { return nullptr; } - virtual void CaptureUserFeedback(TSharedPtr userFeedback) override {} + virtual void CaptureFeedback(TSharedPtr feedback) override {} virtual void SetUser(TSharedPtr user) override {} virtual void RemoveUser() override {} virtual void SetContext(const FString& key, const TMap& values) override {} @@ -33,10 +33,13 @@ class FNullSentrySubsystem : public ISentrySubsystem virtual void SetLevel(ESentryLevel level) override {} virtual void StartSession() override {} virtual void EndSession() override {} - virtual TSharedPtr StartTransaction(const FString& name, const FString& operation) override { return nullptr; } - virtual TSharedPtr StartTransactionWithContext(TSharedPtr context) override { return nullptr; } - virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp) override { return nullptr; } - virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const TMap& options) override { return nullptr; } + virtual void GiveUserConsent() override {} + virtual void RevokeUserConsent() override {} + virtual EUserConsent GetUserConsent() const override { return EUserConsent::Unknown; } + virtual TSharedPtr StartTransaction(const FString& name, const FString& operation, bool bindToScope) override { return nullptr; } + virtual TSharedPtr StartTransactionWithContext(TSharedPtr context, bool bindToScope) override { return nullptr; } + virtual TSharedPtr StartTransactionWithContextAndTimestamp(TSharedPtr context, int64 timestamp, bool bindToScope) override { return nullptr; } + virtual TSharedPtr StartTransactionWithContextAndOptions(TSharedPtr context, const FSentryTransactionOptions& options) override { return nullptr; } virtual TSharedPtr ContinueTrace(const FString& sentryTrace, const TArray& baggageHeaders) override { return nullptr; } virtual void HandleAssert() override {} diff --git a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryTransaction.h b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryTransaction.h index 39e8870..237952e 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryTransaction.h +++ b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryTransaction.h @@ -9,8 +9,8 @@ class FNullSentryTransaction final : public ISentryTransaction public: virtual ~FNullSentryTransaction() override = default; - virtual TSharedPtr StartChildSpan(const FString& operation, const FString& desctiption) override { return nullptr; } - virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp) override { return nullptr; } + virtual TSharedPtr StartChildSpan(const FString& operation, const FString& desctiption, bool bindToScope) override { return nullptr; } + virtual TSharedPtr StartChildSpanWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp, bool bindToScope) override { return nullptr; } virtual void Finish() override {} virtual void FinishWithTimestamp(int64 timestamp) override {} virtual bool IsFinished() const override { return false; } diff --git a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryUserFeedback.h b/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryUserFeedback.h deleted file mode 100644 index 0ab40e3..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/Null/NullSentryUserFeedback.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#pragma once - -#include "Interface/SentryUserFeedbackInterface.h" - -class ISentryId; - -class FNullSentryUserFeedback final : public ISentryUserFeedback -{ -public: - FNullSentryUserFeedback(TSharedPtr eventId) {} - - virtual ~FNullSentryUserFeedback() override = default; - - virtual void SetName(const FString& name) override {} - virtual FString GetName() const override { return TEXT(""); } - virtual void SetEmail(const FString& email) override {} - virtual FString GetEmail() const override { return TEXT(""); } - virtual void SetComment(const FString& comment) override {} - virtual FString GetComment() const override { return TEXT(""); } -}; - -typedef FNullSentryUserFeedback FPlatformSentryUserFeedback; diff --git a/Plugins/Sentry/Source/Sentry/Private/SentryFeedback.cpp b/Plugins/Sentry/Source/Sentry/Private/SentryFeedback.cpp new file mode 100644 index 0000000..0b5b6c7 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/SentryFeedback.cpp @@ -0,0 +1,69 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentryFeedback.h" + +#include "HAL/PlatformSentryFeedback.h" + +void USentryFeedback::Initialize(const FString& Message) +{ + if (ensure(!Message.IsEmpty())) + { + NativeImpl = MakeShareable(new FPlatformSentryFeedback(Message)); + } +} + +FString USentryFeedback::GetMessage() const +{ + if (!NativeImpl) + return FString(); + + return NativeImpl->GetMessage(); +} + +void USentryFeedback::SetName(const FString& Name) +{ + if (!NativeImpl) + return; + + NativeImpl->SetName(Name); +} + +FString USentryFeedback::GetName() const +{ + if (!NativeImpl) + return FString(); + + return NativeImpl->GetName(); +} + +void USentryFeedback::SetContactEmail(const FString& Email) +{ + if (!NativeImpl) + return; + + NativeImpl->SetContactEmail(Email); +} + +FString USentryFeedback::GetContactEmail() const +{ + if (!NativeImpl) + return FString(); + + return NativeImpl->GetContactEmail(); +} + +void USentryFeedback::SetAssociatedEvent(const FString& EventId) +{ + if (!NativeImpl) + return; + + NativeImpl->SetAssociatedEvent(EventId); +} + +FString USentryFeedback::GetAssociatedEvent() const +{ + if (!NativeImpl) + return FString(); + + return NativeImpl->GetAssociatedEvent(); +} diff --git a/Plugins/Sentry/Source/Sentry/Private/SentryLibrary.cpp b/Plugins/Sentry/Source/Sentry/Private/SentryLibrary.cpp index a28c4a2..ea05082 100644 --- a/Plugins/Sentry/Source/Sentry/Private/SentryLibrary.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/SentryLibrary.cpp @@ -4,16 +4,16 @@ #include "SentryAttachment.h" #include "SentryBreadcrumb.h" #include "SentryEvent.h" +#include "SentryFeedback.h" #include "SentryTransactionContext.h" #include "SentryUser.h" -#include "SentryUserFeedback.h" #include "HAL/PlatformSentryAttachment.h" #include "HAL/PlatformSentryBreadcrumb.h" #include "HAL/PlatformSentryEvent.h" +#include "HAL/PlatformSentryFeedback.h" #include "HAL/PlatformSentryTransactionContext.h" #include "HAL/PlatformSentryUser.h" -#include "HAL/PlatformSentryUserFeedback.h" USentryEvent* USentryLibrary::CreateSentryEvent(const FString& Message, ESentryLevel Level) { @@ -46,18 +46,18 @@ USentryUser* USentryLibrary::CreateSentryUser(const FString& Email, const FStrin return User; } -USentryUserFeedback* USentryLibrary::CreateSentryUserFeedback(const FString& EventId, const FString& Name, const FString& Email, const FString& Comments) +USentryFeedback* USentryLibrary::CreateSentryFeedback(const FString& Message, const FString& Name, const FString& Email, const FString& EventId) { - USentryUserFeedback* UserFeedback = USentryUserFeedback::Create(CreateSharedSentryUserFeedback(EventId)); + USentryFeedback* Feedback = USentryFeedback::Create(MakeShareable(new FPlatformSentryFeedback(Message))); if (!Name.IsEmpty()) - UserFeedback->SetName(Name); + Feedback->SetName(Name); if (!Email.IsEmpty()) - UserFeedback->SetEmail(Email); - if (!Comments.IsEmpty()) - UserFeedback->SetComment(Comments); + Feedback->SetContactEmail(Email); + if (!EventId.IsEmpty()) + Feedback->SetAssociatedEvent(EventId); - return UserFeedback; + return Feedback; } USentryBreadcrumb* USentryLibrary::CreateSentryBreadcrumb(const FString& Message, const FString& Type, const FString& Category, diff --git a/Plugins/Sentry/Source/Sentry/Private/SentryModule.cpp b/Plugins/Sentry/Source/Sentry/Private/SentryModule.cpp index 4481dab..037fcd7 100644 --- a/Plugins/Sentry/Source/Sentry/Private/SentryModule.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/SentryModule.cpp @@ -128,10 +128,30 @@ bool FSentryModule::IsMarketplaceVersion() } #if PLATFORM_MAC + void* FSentryModule::GetSentryLibHandle() const { return mDllHandleSentry; } + +Class FSentryModule::GetSentryCocoaClass(const ANSICHAR* ClassName) +{ + ANSICHAR ClassNamePattern[256]; + FCStringAnsi::Snprintf(ClassNamePattern, sizeof(ClassNamePattern), "OBJC_CLASS_$_%s", ClassName); + Class FoundClass = (__bridge Class)dlsym(GetSentryLibHandle(), ClassNamePattern); + + if (!FoundClass) + { + // Try to load with Swift mangled class name + ANSICHAR MangledClassNamePattern[256]; + int32 ClassNameLen = FCStringAnsi::Strlen(ClassName); + FCStringAnsi::Snprintf(MangledClassNamePattern, sizeof(MangledClassNamePattern), "OBJC_CLASS_$__TtC6Sentry%d%s", ClassNameLen, ClassName); + FoundClass = (__bridge Class)dlsym(GetSentryLibHandle(), MangledClassNamePattern); + } + + return FoundClass; +} + #endif #undef LOCTEXT_NAMESPACE diff --git a/Plugins/Sentry/Source/Sentry/Private/SentrySamplingContext.cpp b/Plugins/Sentry/Source/Sentry/Private/SentrySamplingContext.cpp index d83cafc..b452a60 100644 --- a/Plugins/Sentry/Source/Sentry/Private/SentrySamplingContext.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/SentrySamplingContext.cpp @@ -15,10 +15,10 @@ USentryTransactionContext* USentrySamplingContext::GetTransactionContext() const return USentryTransactionContext::Create(transactionContextNativeImpl); } -TMap USentrySamplingContext::GetCustomSamplingContext() const +TMap USentrySamplingContext::GetCustomSamplingContext() const { if (!NativeImpl) - return TMap(); + return TMap(); return NativeImpl->GetCustomSamplingContext(); } diff --git a/Plugins/Sentry/Source/Sentry/Private/SentrySettings.cpp b/Plugins/Sentry/Source/Sentry/Private/SentrySettings.cpp index ad983f8..3ca138d 100644 --- a/Plugins/Sentry/Source/Sentry/Private/SentrySettings.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/SentrySettings.cpp @@ -14,7 +14,6 @@ USentrySettings::USentrySettings(const FObjectInitializer& ObjectInitializer) , InitAutomatically(true) , Dsn() , Debug(true) - , Environment(GetDefaultEnvironmentName()) , SampleRate(1.0f) , EnableAutoLogAttachment(false) , AttachStacktrace(true) @@ -45,6 +44,8 @@ USentrySettings::USentrySettings(const FObjectInitializer& ObjectInitializer) , DiagnosticLevel(ESentryCliLogLevel::Info) , UseLegacyGradlePlugin(false) , CrashReporterUrl() + , bRequireUserConsent(false) + , bDefaultUserConsentGiven(true) , bIsDirty(false) { if (GIsEditor) @@ -84,34 +85,47 @@ void USentrySettings::PostEditChangeProperty(FPropertyChangedEvent& PropertyChan FString USentrySettings::GetEffectiveDsn() const { - return GIsEditor && !EditorDsn.IsEmpty() ? EditorDsn : Dsn; -} + if (GIsEditor && !EditorDsn.IsEmpty()) + { + return EditorDsn; + } -FString USentrySettings::GetFormattedReleaseName() -{ - FString FormattedReleaseName = FApp::GetProjectName(); + if (!Dsn.IsEmpty()) + { + return Dsn; + } - FString Version = TEXT(""); - GConfig->GetString(TEXT("/Script/EngineSettings.GeneralProjectSettings"), TEXT("ProjectVersion"), Version, GGameIni); - if (!Version.IsEmpty()) + const FString& EnvVarDsn = FPlatformMisc::GetEnvironmentVariable(TEXT("SENTRY_DSN")); + if (!EnvVarDsn.IsEmpty()) { - FormattedReleaseName = FString::Printf(TEXT("%s@%s"), *FormattedReleaseName, *Version); + UE_LOG(LogSentrySdk, Log, TEXT("DSN is not set in plugin settings - using SENTRY_DSN environment variable instead.")); + return EnvVarDsn; } - return FormattedReleaseName; + UE_LOG(LogSentrySdk, Log, TEXT("DSN is not configured.")); + return FString(); } -bool USentrySettings::IsDirty() const +FString USentrySettings::GetEffectiveEnvironment() const { - return bIsDirty; -} + if (!Environment.IsEmpty()) + { + UE_LOG(LogSentrySdk, Verbose, TEXT("Using the value from plugin settings as Sentry environment.")); + return Environment; + } -void USentrySettings::ClearDirtyFlag() -{ - bIsDirty = false; + const FString& EnvVarEnvironment = FPlatformMisc::GetEnvironmentVariable(TEXT("SENTRY_ENVIRONMENT")); + if (!EnvVarEnvironment.IsEmpty()) + { + UE_LOG(LogSentrySdk, Log, TEXT("Using SENTRY_ENVIRONMENT variable as Sentry environment.")); + return EnvVarEnvironment; + } + + UE_LOG(LogSentrySdk, Log, TEXT("Using current build configuration as Sentry environment.")); + return GetEnvironmentFromBuildConfig(); } -FString USentrySettings::GetDefaultEnvironmentName() +FString USentrySettings::GetEnvironmentFromBuildConfig() const { if (GIsEditor) { @@ -127,6 +141,49 @@ FString USentrySettings::GetDefaultEnvironmentName() return LexToString(FApp::GetBuildConfiguration()); } +FString USentrySettings::GetEffectiveRelease() const +{ + if (OverrideReleaseName) + { + UE_LOG(LogSentrySdk, Verbose, TEXT("Using the value from plugin settings as Sentry release.")); + return Release; + } + + const FString& EnvVarRelease = FPlatformMisc::GetEnvironmentVariable(TEXT("SENTRY_RELEASE")); + if (!EnvVarRelease.IsEmpty()) + { + UE_LOG(LogSentrySdk, Log, TEXT("Using SENTRY_RELEASE variable as Sentry release.")); + return EnvVarRelease; + } + + UE_LOG(LogSentrySdk, Log, TEXT("Using current project name and version as Sentry release.")); + return GetReleaseFromProjectSettings(); +} + +FString USentrySettings::GetReleaseFromProjectSettings() const +{ + FString FormattedReleaseName = FApp::GetProjectName(); + + FString Version = TEXT(""); + GConfig->GetString(TEXT("/Script/EngineSettings.GeneralProjectSettings"), TEXT("ProjectVersion"), Version, GGameIni); + if (!Version.IsEmpty()) + { + FormattedReleaseName = FString::Printf(TEXT("%s@%s"), *FormattedReleaseName, *Version); + } + + return FormattedReleaseName; +} + +bool USentrySettings::IsDirty() const +{ + return bIsDirty; +} + +void USentrySettings::ClearDirtyFlag() +{ + bIsDirty = false; +} + void USentrySettings::LoadDebugSymbolsProperties() { const FString PropertiesFilePath = FPaths::Combine(FPaths::ProjectDir(), TEXT("sentry.properties")); diff --git a/Plugins/Sentry/Source/Sentry/Private/SentrySpan.cpp b/Plugins/Sentry/Source/Sentry/Private/SentrySpan.cpp index c5a717f..e69ae82 100644 --- a/Plugins/Sentry/Source/Sentry/Private/SentrySpan.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/SentrySpan.cpp @@ -5,12 +5,12 @@ #include "HAL/PlatformSentrySpan.h" -USentrySpan* USentrySpan::StartChild(const FString& Operation, const FString& Description) +USentrySpan* USentrySpan::StartChild(const FString& Operation, const FString& Description, bool BindToScope) { if (!NativeImpl || NativeImpl->IsFinished()) return nullptr; - if (TSharedPtr ChildSpan = NativeImpl->StartChild(Operation, Description)) + if (TSharedPtr ChildSpan = NativeImpl->StartChild(Operation, Description, BindToScope)) { return USentrySpan::Create(ChildSpan); } @@ -21,12 +21,12 @@ USentrySpan* USentrySpan::StartChild(const FString& Operation, const FString& De } } -USentrySpan* USentrySpan::StartChildWithTimestamp(const FString& Operation, const FString& Description, int64 Timestamp) +USentrySpan* USentrySpan::StartChildWithTimestamp(const FString& Operation, const FString& Description, int64 Timestamp, bool BindToScope) { if (!NativeImpl || NativeImpl->IsFinished()) return nullptr; - if (TSharedPtr ChildSpan = NativeImpl->StartChildWithTimestamp(Operation, Description, Timestamp)) + if (TSharedPtr ChildSpan = NativeImpl->StartChildWithTimestamp(Operation, Description, Timestamp, BindToScope)) { return USentrySpan::Create(ChildSpan); } diff --git a/Plugins/Sentry/Source/Sentry/Private/SentrySubsystem.cpp b/Plugins/Sentry/Source/Sentry/Private/SentrySubsystem.cpp index 0abee39..6c83f33 100644 --- a/Plugins/Sentry/Source/Sentry/Private/SentrySubsystem.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/SentrySubsystem.cpp @@ -8,6 +8,7 @@ #include "SentryDefines.h" #include "SentryErrorOutputDevice.h" #include "SentryEvent.h" +#include "SentryFeedback.h" #include "SentryModule.h" #include "SentryOutputDevice.h" #include "SentrySettings.h" @@ -15,7 +16,6 @@ #include "SentryTransaction.h" #include "SentryTransactionContext.h" #include "SentryUser.h" -#include "SentryUserFeedback.h" #include "CoreGlobals.h" #include "Engine/World.h" @@ -29,8 +29,9 @@ #include "Interface/SentrySubsystemInterface.h" +#include "HAL/PlatformSentryFeedback.h" +#include "HAL/PlatformSentryId.h" #include "HAL/PlatformSentrySubsystem.h" -#include "HAL/PlatformSentryUserFeedback.h" void USentrySubsystem::Initialize(FSubsystemCollectionBase& Collection) { @@ -77,7 +78,7 @@ void USentrySubsystem::Initialize() const USentrySettings* Settings = FSentryModule::Get().GetSettings(); check(Settings); - if (Settings->Dsn.IsEmpty()) + if (Settings->GetEffectiveDsn().IsEmpty()) { UE_LOG(LogSentrySdk, Warning, TEXT("Sentry requires minimal configuration for its initialization - please provide the DSN in plugin settings.")); return; @@ -119,11 +120,8 @@ void USentrySubsystem::Initialize() } AddDefaultContext(); - -#if PLATFORM_WINDOWS || PLATFORM_LINUX || PLATFORM_MAC AddGpuContext(); AddDeviceContext(); -#endif PromoteTags(); ConfigureBreadcrumbs(); @@ -341,32 +339,35 @@ FString USentrySubsystem::CaptureEventWithScope(USentryEvent* Event, const FConf return SentryId->ToString(); } -void USentrySubsystem::CaptureUserFeedback(USentryUserFeedback* UserFeedback) +void USentrySubsystem::CaptureFeedback(USentryFeedback* Feedback) { check(SubsystemNativeImpl); - check(UserFeedback); + check(Feedback); if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) { return; } - SubsystemNativeImpl->CaptureUserFeedback(UserFeedback->GetNativeObject()); + SubsystemNativeImpl->CaptureFeedback(Feedback->GetNativeObject()); } -void USentrySubsystem::CaptureUserFeedbackWithParams(const FString& EventId, const FString& Email, const FString& Comments, const FString& Name) +void USentrySubsystem::CaptureFeedbackWithParams(const FString& Message, const FString& Name, const FString& Email, const FString& EventId) { check(SubsystemNativeImpl); - check(!EventId.IsEmpty()); + check(!Message.IsEmpty()); - USentryUserFeedback* UserFeedback = USentryUserFeedback::Create(CreateSharedSentryUserFeedback(EventId)); - check(UserFeedback); + USentryFeedback* Feedback = USentryFeedback::Create(MakeShareable(new FPlatformSentryFeedback(Message))); + check(Feedback); - UserFeedback->SetEmail(Email); - UserFeedback->SetComment(Comments); - UserFeedback->SetName(Name); + if (!Name.IsEmpty()) + Feedback->SetName(Name); + if (!Email.IsEmpty()) + Feedback->SetContactEmail(Email); + if (!EventId.IsEmpty()) + Feedback->SetAssociatedEvent(EventId); - CaptureUserFeedback(UserFeedback); + CaptureFeedback(Feedback); } void USentrySubsystem::SetUser(USentryUser* User) @@ -466,7 +467,43 @@ void USentrySubsystem::EndSession() SubsystemNativeImpl->EndSession(); } -USentryTransaction* USentrySubsystem::StartTransaction(const FString& Name, const FString& Operation) +void USentrySubsystem::GiveUserConsent() +{ + check(SubsystemNativeImpl); + + if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) + { + return; + } + + SubsystemNativeImpl->GiveUserConsent(); +} + +void USentrySubsystem::RevokeUserConsent() +{ + check(SubsystemNativeImpl); + + if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) + { + return; + } + + SubsystemNativeImpl->RevokeUserConsent(); +} + +EUserConsent USentrySubsystem::GetUserConsent() const +{ + check(SubsystemNativeImpl); + + if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) + { + return EUserConsent::Unknown; + } + + return SubsystemNativeImpl->GetUserConsent(); +} + +USentryTransaction* USentrySubsystem::StartTransaction(const FString& Name, const FString& Operation, bool BindToScope) { check(SubsystemNativeImpl); @@ -475,13 +512,13 @@ USentryTransaction* USentrySubsystem::StartTransaction(const FString& Name, cons return nullptr; } - TSharedPtr SentryTransaction = SubsystemNativeImpl->StartTransaction(Name, Operation); + TSharedPtr SentryTransaction = SubsystemNativeImpl->StartTransaction(Name, Operation, BindToScope); check(SentryTransaction); return USentryTransaction::Create(SentryTransaction); } -USentryTransaction* USentrySubsystem::StartTransactionWithContext(USentryTransactionContext* Context) +USentryTransaction* USentrySubsystem::StartTransactionWithContext(USentryTransactionContext* Context, bool BindToScope) { check(SubsystemNativeImpl); check(Context); @@ -491,13 +528,13 @@ USentryTransaction* USentrySubsystem::StartTransactionWithContext(USentryTransac return nullptr; } - TSharedPtr SentryTransaction = SubsystemNativeImpl->StartTransactionWithContext(Context->GetNativeObject()); + TSharedPtr SentryTransaction = SubsystemNativeImpl->StartTransactionWithContext(Context->GetNativeObject(), BindToScope); check(SentryTransaction); return USentryTransaction::Create(SentryTransaction); } -USentryTransaction* USentrySubsystem::StartTransactionWithContextAndTimestamp(USentryTransactionContext* Context, int64 Timestamp) +USentryTransaction* USentrySubsystem::StartTransactionWithContextAndTimestamp(USentryTransactionContext* Context, int64 Timestamp, bool BindToScope) { check(SubsystemNativeImpl); check(Context); @@ -507,13 +544,13 @@ USentryTransaction* USentrySubsystem::StartTransactionWithContextAndTimestamp(US return nullptr; } - TSharedPtr SentryTransaction = SubsystemNativeImpl->StartTransactionWithContextAndTimestamp(Context->GetNativeObject(), Timestamp); + TSharedPtr SentryTransaction = SubsystemNativeImpl->StartTransactionWithContextAndTimestamp(Context->GetNativeObject(), Timestamp, BindToScope); check(SentryTransaction); return USentryTransaction::Create(SentryTransaction); } -USentryTransaction* USentrySubsystem::StartTransactionWithContextAndOptions(USentryTransactionContext* Context, const TMap& Options) +USentryTransaction* USentrySubsystem::StartTransactionWithContextAndOptions(USentryTransactionContext* Context, const FSentryTransactionOptions& Options) { check(SubsystemNativeImpl); check(Context); @@ -559,6 +596,11 @@ bool USentrySubsystem::IsSupportedForCurrentSettings() const return true; } +TSharedPtr USentrySubsystem::GetNativeObject() const +{ + return SubsystemNativeImpl; +} + void USentrySubsystem::AddDefaultContext() { check(SubsystemNativeImpl); @@ -594,12 +636,15 @@ void USentrySubsystem::AddGpuContext() FGPUDriverInfo GpuDriverInfo = FPlatformMisc::GetGPUDriverInfo(FPlatformMisc::GetPrimaryGPUBrand()); - TMap GpuContext; - GpuContext.Add(TEXT("name"), GpuDriverInfo.DeviceDescription); - GpuContext.Add(TEXT("vendor_name"), GpuDriverInfo.ProviderName); - GpuContext.Add(TEXT("driver_version"), GpuDriverInfo.UserDriverVersion); + if (GpuDriverInfo.IsValid()) + { + TMap GpuContext; + GpuContext.Add(TEXT("name"), GpuDriverInfo.DeviceDescription); + GpuContext.Add(TEXT("vendor_name"), GpuDriverInfo.ProviderName); + GpuContext.Add(TEXT("driver_version"), GpuDriverInfo.UserDriverVersion); - SubsystemNativeImpl->SetContext(TEXT("gpu"), GpuContext); + SubsystemNativeImpl->SetContext(TEXT("gpu"), GpuContext); + } } void USentrySubsystem::AddDeviceContext() diff --git a/Plugins/Sentry/Source/Sentry/Private/SentryTransaction.cpp b/Plugins/Sentry/Source/Sentry/Private/SentryTransaction.cpp index 4b84550..579edae 100644 --- a/Plugins/Sentry/Source/Sentry/Private/SentryTransaction.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/SentryTransaction.cpp @@ -6,12 +6,12 @@ #include "HAL/PlatformSentryTransaction.h" -USentrySpan* USentryTransaction::StartChildSpan(const FString& Operation, const FString& Description) +USentrySpan* USentryTransaction::StartChildSpan(const FString& Operation, const FString& Description, bool BindToScope) { if (!NativeImpl || NativeImpl->IsFinished()) return nullptr; - if (TSharedPtr spanNativeImpl = NativeImpl->StartChildSpan(Operation, Description)) + if (TSharedPtr spanNativeImpl = NativeImpl->StartChildSpan(Operation, Description, BindToScope)) { return USentrySpan::Create(spanNativeImpl); } @@ -22,12 +22,12 @@ USentrySpan* USentryTransaction::StartChildSpan(const FString& Operation, const } } -USentrySpan* USentryTransaction::StartChildSpanWithTimestamp(const FString& Operation, const FString& Description, int64 Timestamp) +USentrySpan* USentryTransaction::StartChildSpanWithTimestamp(const FString& Operation, const FString& Description, int64 Timestamp, bool BindToScope) { if (!NativeImpl || NativeImpl->IsFinished()) return nullptr; - if (TSharedPtr spanNativeImpl = NativeImpl->StartChildSpanWithTimestamp(Operation, Description, Timestamp)) + if (TSharedPtr spanNativeImpl = NativeImpl->StartChildSpanWithTimestamp(Operation, Description, Timestamp, BindToScope)) { return USentrySpan::Create(spanNativeImpl); } diff --git a/Plugins/Sentry/Source/Sentry/Private/SentryUserFeedback.cpp b/Plugins/Sentry/Source/Sentry/Private/SentryUserFeedback.cpp deleted file mode 100644 index 2b9dbc9..0000000 --- a/Plugins/Sentry/Source/Sentry/Private/SentryUserFeedback.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) 2025 Sentry. All Rights Reserved. - -#include "SentryUserFeedback.h" - -#include "HAL/PlatformSentryUserFeedback.h" - -void USentryUserFeedback::Initialize(const FString& EventId) -{ - if (ensure(!EventId.IsEmpty())) - { - NativeImpl = CreateSharedSentryUserFeedback(EventId); - } -} - -void USentryUserFeedback::SetName(const FString& Name) -{ - if (!NativeImpl) - return; - - NativeImpl->SetName(Name); -} - -FString USentryUserFeedback::GetName() const -{ - if (!NativeImpl) - return FString(); - - return NativeImpl->GetName(); -} - -void USentryUserFeedback::SetEmail(const FString& Email) -{ - if (!NativeImpl) - return; - - NativeImpl->SetEmail(Email); -} - -FString USentryUserFeedback::GetEmail() const -{ - if (!NativeImpl) - return FString(); - - return NativeImpl->GetEmail(); -} - -void USentryUserFeedback::SetComment(const FString& Comments) -{ - if (!NativeImpl) - return; - - NativeImpl->SetComment(Comments); -} - -FString USentryUserFeedback::GetComment() const -{ - if (!NativeImpl) - return FString(); - - return NativeImpl->GetComment(); -} diff --git a/Plugins/Sentry/Source/Sentry/Private/Tests/SentryFeedback.spec.cpp b/Plugins/Sentry/Source/Sentry/Private/Tests/SentryFeedback.spec.cpp new file mode 100644 index 0000000..d968e5e --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/Tests/SentryFeedback.spec.cpp @@ -0,0 +1,95 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentryFeedback.h" +#include "SentryTests.h" + +#include "Misc/AutomationTest.h" + +#include "HAL/PlatformSentryFeedback.h" + +#if WITH_AUTOMATION_TESTS + +BEGIN_DEFINE_SPEC(SentryFeedbackSpec, "Sentry.SentryFeedback", EAutomationTestFlags::ProductFilter | SentryApplicationContextMask) + USentryFeedback* SentryFeedback; +END_DEFINE_SPEC(SentryFeedbackSpec) + +void SentryFeedbackSpec::Define() +{ + BeforeEach([this]() + { + SentryFeedback = USentryFeedback::Create(MakeShareable(new FPlatformSentryFeedback(TEXT("Test feedback")))); + }); + + Describe("Feedback message", [this]() + { + It("should not be empty", [this]() + { + TestFalse("Message", SentryFeedback->GetMessage().IsEmpty()); + }); + }); + + Describe("Feedback name", [this]() + { + It("should be empty if not set", [this]() + { + TestTrue("Name", SentryFeedback->GetName().IsEmpty()); + }); + + It("should be empty if initialized with empty string", [this]() + { + SentryFeedback->SetName(TEXT("")); + TestTrue("Name", SentryFeedback->GetName().IsEmpty()); + }); + + It("should retain its value", [this]() + { + const FString TestName = TEXT("John Doe"); + SentryFeedback->SetName(TestName); + TestEqual("Name", SentryFeedback->GetName(), TestName); + }); + }); + + Describe("Feedback contact email", [this]() + { + It("should be empty if not set", [this]() + { + TestTrue("Contact email", SentryFeedback->GetContactEmail().IsEmpty()); + }); + + It("should be empty if initialized with empty string", [this]() + { + SentryFeedback->SetContactEmail(TEXT("")); + TestTrue("Contact email", SentryFeedback->GetContactEmail().IsEmpty()); + }); + + It("should retain its value", [this]() + { + const FString TestEmail = TEXT("feedback-mail@example.org"); + SentryFeedback->SetContactEmail(TestEmail); + TestEqual("Contact email", SentryFeedback->GetContactEmail(), TestEmail); + }); + }); + + Describe("Feedback associated event", [this]() + { + It("should be empty if not set", [this]() + { + TestTrue("Event Id", SentryFeedback->GetAssociatedEvent().IsEmpty()); + }); + + It("should be empty if initialized with empty string", [this]() + { + SentryFeedback->SetAssociatedEvent(TEXT("")); + TestTrue("Event Id", SentryFeedback->GetAssociatedEvent().IsEmpty()); + }); + + It("should retain its value", [this]() + { + const FString TestEventId = TEXT("c3829f10764848442d813c4124cf44a0"); + SentryFeedback->SetAssociatedEvent(TestEventId); + TestEqual("Event Id", SentryFeedback->GetAssociatedEvent(), TestEventId); + }); + }); +} + +#endif diff --git a/Plugins/Sentry/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp b/Plugins/Sentry/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp new file mode 100644 index 0000000..4c9ee88 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/Tests/SentryTraceSampling.spec.cpp @@ -0,0 +1,92 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#include "SentrySettings.h" +#include "SentrySubsystem.h" +#include "SentryTests.h" +#include "SentryTraceSamplingHandler.h" +#include "SentryTransaction.h" +#include "SentryTransactionContext.h" + +#include "HAL/PlatformSentryTransactionContext.h" + +#include "Engine/Engine.h" +#include "Misc/AutomationTest.h" + +TDelegate UTraceSamplingTestHandler::OnTraceSamplingTestHandler; + +#if WITH_AUTOMATION_TESTS + +BEGIN_DEFINE_SPEC(SentryTraceSamplingSpec, "Sentry.SentryTraceSampling", EAutomationTestFlags::ProductFilter | SentryApplicationContextMask) + USentryTransactionContext* TransactionContext; + FSentryTransactionOptions TransactionOptions; +END_DEFINE_SPEC(SentryTraceSamplingSpec) + +void SentryTraceSamplingSpec::Define() +{ + BeforeEach([this]() + { + TransactionContext = USentryTransactionContext::Create( + MakeShareable(new FPlatformSentryTransactionContext(TEXT("Test transaction"), TEXT("Test operation")))); + + TransactionOptions = FSentryTransactionOptions(); + TransactionOptions.CustomSamplingContext.Add(TEXT("test_key"), FSentryVariant(TEXT("test_value"))); + TransactionOptions.CustomSamplingContext.Add(TEXT("numeric_key"), FSentryVariant(42)); + }); + + Describe("Trace sampling", [this]() + { + It("should execute callback and provide a valid sampling context", [this]() + { + USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem(); + + SentrySubsystem->InitializeWithSettings(FConfigureSettingsNativeDelegate::CreateLambda([=](USentrySettings* Settings) + { + Settings->EnableTracing = true; + Settings->SamplingType = ESentryTracesSamplingType::TracesSampler; + Settings->TracesSampler = UTraceSamplingTestHandler::StaticClass(); + })); + + UTraceSamplingTestHandler::OnTraceSamplingTestHandler.BindLambda([this](USentrySamplingContext* SamplingContext) + { + TestNotNull("Sampling context should not be null", SamplingContext); + if (SamplingContext) + { + USentryTransactionContext* CustomContext = SamplingContext->GetTransactionContext(); + TestNotNull("Transaction context should be available in sampling context", CustomContext); + if (CustomContext) + { + TestEqual("Transaction name should match", CustomContext->GetName(), TEXT("Test transaction")); + TestEqual("Transaction operation should match", CustomContext->GetOperation(), TEXT("Test operation")); + } + + TMap CustomData = SamplingContext->GetCustomSamplingContext(); + TestTrue("Custom sampling context should contain test_key", CustomData.Contains(TEXT("test_key"))); + TestTrue("Custom sampling context should contain numeric_key", CustomData.Contains(TEXT("numeric_key"))); + + if (CustomData.Contains(TEXT("test_key"))) + { + TestEqual("test_key should have correct value", CustomData[TEXT("test_key")].GetValue(), TEXT("test_value")); + } + + if (CustomData.Contains(TEXT("numeric_key"))) + { + TestEqual("numeric_key should have correct value", CustomData[TEXT("numeric_key")].GetValue(), 42); + } + } + }); + + USentryTransaction* Transaction = SentrySubsystem->StartTransactionWithContextAndOptions(TransactionContext, TransactionOptions); + + if (Transaction) + { + Transaction->Finish(); + } + + UTraceSamplingTestHandler::OnTraceSamplingTestHandler.Unbind(); + + SentrySubsystem->Close(); + }); + }); +} + +#endif \ No newline at end of file diff --git a/Plugins/Sentry/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h b/Plugins/Sentry/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h new file mode 100644 index 0000000..69de6d8 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Private/Tests/SentryTraceSamplingHandler.h @@ -0,0 +1,22 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "SentrySamplingContext.h" +#include "SentryTraceSampler.h" + +#include "SentryTraceSamplingHandler.generated.h" + +UCLASS() +class UTraceSamplingTestHandler : public USentryTraceSampler +{ + GENERATED_BODY() +public: + virtual bool Sample_Implementation(USentrySamplingContext* samplingContext, float& samplingValue) override + { + OnTraceSamplingTestHandler.ExecuteIfBound(samplingContext); + return Super::Sample_Implementation(samplingContext, samplingValue); + } + + static TDelegate OnTraceSamplingTestHandler; +}; diff --git a/Plugins/Sentry/Source/Sentry/Private/Windows/WindowsSentrySubsystem.cpp b/Plugins/Sentry/Source/Sentry/Private/Windows/WindowsSentrySubsystem.cpp index fc96e93..cf75f3d 100644 --- a/Plugins/Sentry/Source/Sentry/Private/Windows/WindowsSentrySubsystem.cpp +++ b/Plugins/Sentry/Source/Sentry/Private/Windows/WindowsSentrySubsystem.cpp @@ -64,7 +64,7 @@ void FWindowsSentrySubsystem::ConfigureHandlerPath(sentry_options_t* Options) if (!FPaths::FileExists(HandlerPath)) { - UE_LOG(LogSentrySdk, Log, TEXT("Crashpad executable couldn't be found so Breakpad will be used instead. Please make sure that the plugin was rebuilt to avoid initialization failure.")); + UE_LOG(LogSentrySdk, Error, TEXT("Crashpad executable couldn't be found.")); return; } diff --git a/Plugins/Sentry/Source/Sentry/Public/SentryDataTypes.h b/Plugins/Sentry/Source/Sentry/Public/SentryDataTypes.h index 0e341b9..121036a 100644 --- a/Plugins/Sentry/Source/Sentry/Public/SentryDataTypes.h +++ b/Plugins/Sentry/Source/Sentry/Public/SentryDataTypes.h @@ -22,4 +22,12 @@ enum class ESentryCrashedLastRun : uint8 NotEvaluated, NotCrashed, Crashed -}; \ No newline at end of file +}; + +UENUM(BlueprintType) +enum class EUserConsent : uint8 +{ + Revoked, + Given, + Unknown +}; diff --git a/Plugins/Sentry/Source/Sentry/Public/SentryUserFeedback.h b/Plugins/Sentry/Source/Sentry/Public/SentryFeedback.h similarity index 50% rename from Plugins/Sentry/Source/Sentry/Public/SentryUserFeedback.h rename to Plugins/Sentry/Source/Sentry/Public/SentryFeedback.h index 04d7ac2..d0d8748 100644 --- a/Plugins/Sentry/Source/Sentry/Public/SentryUserFeedback.h +++ b/Plugins/Sentry/Source/Sentry/Public/SentryFeedback.h @@ -4,27 +4,30 @@ #include "SentryImplWrapper.h" -#include "SentryUserFeedback.generated.h" +#include "SentryFeedback.generated.h" -class USentryId; -class ISentryUserFeedback; +class ISentryFeedback; /** - * Additional information about what happened to an event. + * Additional information about what happened to be sent to Sentry. */ UCLASS(BlueprintType, NotBlueprintable, HideDropdown) -class SENTRY_API USentryUserFeedback : public UObject, public TSentryImplWrapper +class SENTRY_API USentryFeedback : public UObject, public TSentryImplWrapper { GENERATED_BODY() public: /** - * Initializes the user feedback with the event identifier to which it is associated. + * Initializes the user feedback with the provided message. * - * @param EventId The associated event identifier. + * @param Message The user feedback message to record. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void Initialize(const FString& EventId); + void Initialize(const FString& Message); + + /** Gets the feedback message. */ + UFUNCTION(BlueprintPure, Category = "Sentry") + FString GetMessage() const; /** Sets the name of the user. */ UFUNCTION(BlueprintCallable, Category = "Sentry") @@ -36,17 +39,17 @@ class SENTRY_API USentryUserFeedback : public UObject, public TSentryImplWrapper /** Sets the email of the user. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void SetEmail(const FString& Email); + void SetContactEmail(const FString& Email); /** Gets the email of the user. */ UFUNCTION(BlueprintPure, Category = "Sentry") - FString GetEmail() const; + FString GetContactEmail() const; - /** Sets comments of the user about what happened. */ + /** Sets associated event identifier. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - void SetComment(const FString& Comments); + void SetAssociatedEvent(const FString& EventId); - /** Gets comments of the user about what happened. */ + /** Gets associated event identifier. */ UFUNCTION(BlueprintPure, Category = "Sentry") - FString GetComment() const; + FString GetAssociatedEvent() const; }; diff --git a/Plugins/Sentry/Source/Sentry/Public/SentryLibrary.h b/Plugins/Sentry/Source/Sentry/Public/SentryLibrary.h index 1a73a71..53b09d9 100644 --- a/Plugins/Sentry/Source/Sentry/Public/SentryLibrary.h +++ b/Plugins/Sentry/Source/Sentry/Public/SentryLibrary.h @@ -13,7 +13,7 @@ class USentryTransactionContext; class USentryEvent; class USentryBreadcrumb; class USentryUser; -class USentryUserFeedback; +class USentryFeedback; class USentryAttachment; /** @@ -48,15 +48,15 @@ class SENTRY_API USentryLibrary : public UBlueprintFunctionLibrary const TMap& Data); /** - * Creates user feedback for the event. + * Creates user feedback. * - * @param EventId Id of the event to which user feedback is associated. - * @param Name Name of the user. - * @param Email Email of the user. - * @param Comments Comments of the user about what happened. + * @param Message User feedback message (required). + * @param Name User name. + * @param Email User email. + * @param EventId Associated event identifier. */ UFUNCTION(BlueprintCallable, Category = "Sentry") - static USentryUserFeedback* CreateSentryUserFeedback(const FString& EventId, const FString& Name, const FString& Email, const FString& Comments); + static USentryFeedback* CreateSentryFeedback(const FString& Message, const FString& Name, const FString& Email, const FString& EventId); /** * Creates breadcrumb. diff --git a/Plugins/Sentry/Source/Sentry/Public/SentryModule.h b/Plugins/Sentry/Source/Sentry/Public/SentryModule.h index 39b397c..598e8da 100644 --- a/Plugins/Sentry/Source/Sentry/Public/SentryModule.h +++ b/Plugins/Sentry/Source/Sentry/Public/SentryModule.h @@ -47,6 +47,19 @@ class SENTRY_API FSentryModule : public IModuleInterface #if PLATFORM_MAC /** Gets handle to dynamically loaded sentry library. */ void* GetSentryLibHandle() const; + + /** Gets an Objective-C/Swift class from the dynamically loaded sentry library. + * + * @param ClassName The unqualified class name (e.g., "SentrySDK", "SentryId") + * @return The Objective-C/Swift Class object if found, nil otherwise + * + * @note: First tries pattern OBJC_CLASS_$_{ClassName} + * Then tries Swift mangled pattern OBJC_CLASS_$__TtC6Sentry{len}{ClassName} where: + * `_Tt` is Swift type symbol prefix + * `C6Sentry` is a class (`C`) in the Sentry module (`6Sentry` means the module name is 6 characters long) + * {len} is the length of the class name as a decimal string + */ + Class GetSentryCocoaClass(const ANSICHAR* ClassName); #endif static const FName ModuleName; diff --git a/Plugins/Sentry/Source/Sentry/Public/SentrySamplingContext.h b/Plugins/Sentry/Source/Sentry/Public/SentrySamplingContext.h index 44e1fb6..53ca440 100644 --- a/Plugins/Sentry/Source/Sentry/Public/SentrySamplingContext.h +++ b/Plugins/Sentry/Source/Sentry/Public/SentrySamplingContext.h @@ -5,6 +5,7 @@ #include "CoreMinimal.h" #include "SentryImplWrapper.h" +#include "SentryVariant.h" #include "SentrySamplingContext.generated.h" @@ -29,5 +30,5 @@ class SENTRY_API USentrySamplingContext : public UObject, public TSentryImplWrap /** Gets custom data used for sampling. */ UFUNCTION(BlueprintPure, Category = "Sentry") - TMap GetCustomSamplingContext() const; + TMap GetCustomSamplingContext() const; }; diff --git a/Plugins/Sentry/Source/Sentry/Public/SentrySettings.h b/Plugins/Sentry/Source/Sentry/Public/SentrySettings.h index 83d57f0..b2318d1 100644 --- a/Plugins/Sentry/Source/Sentry/Public/SentrySettings.h +++ b/Plugins/Sentry/Source/Sentry/Public/SentrySettings.h @@ -311,7 +311,7 @@ class SENTRY_API USentrySettings : public UObject float TracesSampleRate; UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring", - Meta = (DisplayName = "Traces sampler (for Android/Apple only)", ToolTip = "Custom handler for determining traces sample rate based on the sampling context.", + Meta = (DisplayName = "Traces sampler", ToolTip = "Custom handler for determining traces sample rate based on the sampling context.", EditCondition = "EnableTracing && SamplingType == ESentryTracesSamplingType::TracesSampler", EditConditionHides)) TSubclassOf TracesSampler; @@ -368,6 +368,14 @@ class SENTRY_API USentrySettings : public UObject Meta = (DisplayName = "Crash Reporter Endpoint", ToolTip = "Endpoint that Unreal Engine Crah Reporter should use in order to upload crash data to Sentry.")) FString CrashReporterUrl; + UPROPERTY(Config, EditAnywhere, Category = "General|Consent", + Meta = (DisplayName = "Require User Consent (for Windows/Linux only)", ToolTip = "True if user's consent is required before uploading crash data. Currently this feature is supported for Windows and Linux only.")) + bool bRequireUserConsent; + + UPROPERTY(Config, EditAnywhere, Category = "General|Consent", + Meta = (DisplayName = "Default User Consent Given (for Windows/Linux only)", ToolTip = "True if the default user consent value is 'given'; false if the default value should be 'revoked'. Currently this feature is supported for Windows and Linux only.", EditCondition = "bRequireUserConsent")) + bool bDefaultUserConsentGiven; + #if WITH_EDITOR virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override; #endif @@ -376,17 +384,46 @@ class SENTRY_API USentrySettings : public UObject * Gets the effective DSN based on current execution context. * * @return Editor DSN when running in the editor and one is set; otherwise, falls back to the default DSN. + * If neither is provided, the SDK will attempt to read it from the SENTRY_DSN environment variable. */ FString GetEffectiveDsn() const; - static FString GetFormattedReleaseName(); + /** + * Gets the effective environment based on current execution context. + * + * @return By default, the SDK uses the `Environment` value from the plugin settings if set. + * If not, the SDK will attempt to read it from SENTRY_ENVIRONMENT environment variable. + * If that is also not set, the environment is automatically derived from the current build configuration. + */ + FString GetEffectiveEnvironment() const; + + /** + * Gets the environment from the application's build configuration. + * + * @return Environment string based on build configuration (`Shipping` maps to `Release`, others map directly). + */ + FString GetEnvironmentFromBuildConfig() const; + + /** + * Gets the effective release name based on current execution context. + * + * @return By default, the SDK uses the `Release` value from the plugin settings if `OverrideReleaseName` flag is set. + * If not, the SDK will attempt to read it from SENTRY_RELEASE environment variable. + * If that is also not set, the release name is automatically derived from the current project name and version. + */ + FString GetEffectiveRelease() const; + + /** + * Gets the release name from the project settings. + * + * @return Release name derived from the current project name and version to match the format `@`. + */ + FString GetReleaseFromProjectSettings() const; bool IsDirty() const; void ClearDirtyFlag(); private: - FString GetDefaultEnvironmentName(); - void LoadDebugSymbolsProperties(); bool bIsDirty; diff --git a/Plugins/Sentry/Source/Sentry/Public/SentrySpan.h b/Plugins/Sentry/Source/Sentry/Public/SentrySpan.h index be96448..35a2434 100644 --- a/Plugins/Sentry/Source/Sentry/Public/SentrySpan.h +++ b/Plugins/Sentry/Source/Sentry/Public/SentrySpan.h @@ -24,13 +24,21 @@ class SENTRY_API USentrySpan : public UObject, public TSentryImplWrapper& Options); + USentryTransaction* StartTransactionWithContextAndOptions(USentryTransactionContext* Context, const FSentryTransactionOptions& Options); /** * Creates a transaction context to propagate distributed tracing metadata from upstream @@ -297,6 +327,9 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem UFUNCTION(BlueprintCallable, Category = "Sentry") bool IsSupportedForCurrentSettings() const; + /** Retrieves the underlying native implementation. */ + TSharedPtr GetNativeObject() const; + private: /** Adds default context data for all events captured by Sentry SDK. */ void AddDefaultContext(); diff --git a/Plugins/Sentry/Source/Sentry/Public/SentryTransaction.h b/Plugins/Sentry/Source/Sentry/Public/SentryTransaction.h index 52833fd..504573b 100644 --- a/Plugins/Sentry/Source/Sentry/Public/SentryTransaction.h +++ b/Plugins/Sentry/Source/Sentry/Public/SentryTransaction.h @@ -25,13 +25,21 @@ class SENTRY_API USentryTransaction : public UObject, public TSentryImplWrapper< GENERATED_BODY() public: - /** Starts a new child span. */ + /** Starts a new child span. + * + * @note: On Android, if the transaction is bound to scope + * the SDK will put the new child span on the scope as well. + */ UFUNCTION(BlueprintCallable, Category = "Sentry") - USentrySpan* StartChildSpan(const FString& Operation, const FString& Description); + USentrySpan* StartChildSpan(const FString& Operation, const FString& Description, bool BindToScope = false); - /** Starts a new child span with timestamp. */ + /** Starts a new child span with timestamp. + * + * @note: On Android, if the transaction is bound to scope + * the SDK will put the new child span on the scope as well. + */ UFUNCTION(BlueprintCallable, Category = "Sentry") - USentrySpan* StartChildSpanWithTimestamp(const FString& Operation, const FString& Description, int64 Timestamp); + USentrySpan* StartChildSpanWithTimestamp(const FString& Operation, const FString& Description, int64 Timestamp, bool BindToScope = false); /** Finishes and sends a transaction to Sentry. */ UFUNCTION(BlueprintCallable, Category = "Sentry") diff --git a/Plugins/Sentry/Source/Sentry/Public/SentryTransactionOptions.h b/Plugins/Sentry/Source/Sentry/Public/SentryTransactionOptions.h new file mode 100644 index 0000000..e23c435 --- /dev/null +++ b/Plugins/Sentry/Source/Sentry/Public/SentryTransactionOptions.h @@ -0,0 +1,22 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "SentryVariant.h" + +#include "SentryTransactionOptions.generated.h" + +/** + * Additional data used to create transactions. + */ +USTRUCT(BlueprintType) +struct SENTRY_API FSentryTransactionOptions +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, Category = "Sentry") + TMap CustomSamplingContext; + + UPROPERTY(BlueprintReadWrite, Category = "Sentry") + bool BindToScope = false; +}; diff --git a/Plugins/Sentry/Source/Sentry/Sentry.Build.cs b/Plugins/Sentry/Source/Sentry/Sentry.Build.cs index 8e096ac..5e7c9f3 100644 --- a/Plugins/Sentry/Source/Sentry/Sentry.Build.cs +++ b/Plugins/Sentry/Source/Sentry/Sentry.Build.cs @@ -61,7 +61,7 @@ public Sentry(ReadOnlyTargetRules Target) : base(Target) PublicDefinitions.Add("SENTRY_NO_UIKIT=0"); PublicDefinitions.Add("APPLICATION_EXTENSION_API_ONLY_NO=0"); PublicDefinitions.Add("SDK_V9=0"); - PublicDefinitions.Add("SDK_v9=0"); + PublicDefinitions.Add("SWIFT_PACKAGE=0"); } else if (Target.Platform == UnrealTargetPlatform.Mac) { @@ -76,7 +76,7 @@ public Sentry(ReadOnlyTargetRules Target) : base(Target) PublicDefinitions.Add("SENTRY_NO_UIKIT=1"); PublicDefinitions.Add("APPLICATION_EXTENSION_API_ONLY_NO=0"); PublicDefinitions.Add("SDK_V9=0"); - PublicDefinitions.Add("SDK_v9=0"); + PublicDefinitions.Add("SWIFT_PACKAGE=0"); } else if (Target.Platform == UnrealTargetPlatform.Android) { @@ -94,33 +94,23 @@ public Sentry(ReadOnlyTargetRules Target) : base(Target) { PrivateIncludePaths.Add(Path.Combine(ModuleDirectory, "Private", "Microsoft")); - bool CrashpadExists = File.Exists(Path.Combine(PlatformThirdPartyPath, "Crashpad", "bin", "crashpad_handler.exe")); + PublicIncludePaths.Add(Path.Combine(PlatformThirdPartyPath, "include")); - string WindowsThirdPartyPath = Path.Combine(PlatformThirdPartyPath, CrashpadExists ? "Crashpad" : "Breakpad"); + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "sentry.lib")); - PublicIncludePaths.Add(Path.Combine(WindowsThirdPartyPath, "include")); - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "sentry.lib")); + RuntimeDependencies.Add(Path.Combine(PlatformBinariesPath, "crashpad_handler.exe"), Path.Combine(PlatformThirdPartyPath, "bin", "crashpad_handler.exe")); + RuntimeDependencies.Add(Path.Combine(PlatformBinariesPath, "crashpad_wer.dll"), Path.Combine(PlatformThirdPartyPath, "bin", "crashpad_wer.dll")); - if (CrashpadExists) - { - RuntimeDependencies.Add(Path.Combine(PlatformBinariesPath, "crashpad_handler.exe"), Path.Combine(WindowsThirdPartyPath, "bin", "crashpad_handler.exe")); - RuntimeDependencies.Add(Path.Combine(PlatformBinariesPath, "crashpad_wer.dll"), Path.Combine(WindowsThirdPartyPath, "bin", "crashpad_wer.dll")); - - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "crashpad_compat.lib")); - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "crashpad_snapshot.lib")); - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "crashpad_util.lib")); - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "mini_chromium.lib")); - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "crashpad_client.lib")); - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "crashpad_zlib.lib")); - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "crashpad_getopt.lib")); - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "crashpad_tools.lib")); - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "crashpad_handler_lib.lib")); - } - else - { - PublicAdditionalLibraries.Add(Path.Combine(WindowsThirdPartyPath, "lib", "breakpad_client.lib")); - } + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "crashpad_compat.lib")); + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "crashpad_snapshot.lib")); + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "crashpad_util.lib")); + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "mini_chromium.lib")); + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "crashpad_client.lib")); + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "crashpad_zlib.lib")); + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "crashpad_getopt.lib")); + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "crashpad_tools.lib")); + PublicAdditionalLibraries.Add(Path.Combine(PlatformThirdPartyPath, "lib", "crashpad_handler_lib.lib")); PublicDefinitions.Add("USE_SENTRY_NATIVE=1"); PublicDefinitions.Add("SENTRY_BUILD_STATIC=1"); diff --git a/Plugins/Sentry/Source/Sentry/Sentry_Android_UPL.xml b/Plugins/Sentry/Source/Sentry/Sentry_Android_UPL.xml index 4814493..36b0b65 100644 --- a/Plugins/Sentry/Source/Sentry/Sentry_Android_UPL.xml +++ b/Plugins/Sentry/Source/Sentry/Sentry_Android_UPL.xml @@ -171,7 +171,7 @@ - + dependencies { classpath 'com.android.tools.build:gradle:3.5.4' @@ -180,12 +180,12 @@ - + dependencies { classpath 'com.android.tools.build:gradle:7.4.2' - classpath 'io.sentry:sentry-android-gradle-plugin:5.8.0' // current + classpath 'io.sentry:sentry-android-gradle-plugin:5.10.0' // current } diff --git a/Plugins/Sentry/Source/ThirdParty/Android/sentry-android-core-release.aar b/Plugins/Sentry/Source/ThirdParty/Android/sentry-android-core-release.aar index db18471..8f808dc 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Android/sentry-android-core-release.aar and b/Plugins/Sentry/Source/ThirdParty/Android/sentry-android-core-release.aar differ diff --git a/Plugins/Sentry/Source/ThirdParty/Android/sentry-android-ndk-release.aar b/Plugins/Sentry/Source/ThirdParty/Android/sentry-android-ndk-release.aar index c606dc7..b3dde82 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Android/sentry-android-ndk-release.aar and b/Plugins/Sentry/Source/ThirdParty/Android/sentry-android-ndk-release.aar differ diff --git a/Plugins/Sentry/Source/ThirdParty/Android/sentry-native-ndk-release.aar b/Plugins/Sentry/Source/ThirdParty/Android/sentry-native-ndk-release.aar index c147edc..8a77b10 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Android/sentry-native-ndk-release.aar and b/Plugins/Sentry/Source/ThirdParty/Android/sentry-native-ndk-release.aar differ diff --git a/Plugins/Sentry/Source/ThirdParty/Android/sentry.jar b/Plugins/Sentry/Source/ThirdParty/Android/sentry.jar index 0755c1c..8ce892f 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Android/sentry.jar and b/Plugins/Sentry/Source/ThirdParty/Android/sentry.jar differ diff --git a/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Darwin-universal b/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Darwin-universal index e4bcbb6..5529e0e 100755 Binary files a/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Darwin-universal and b/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Darwin-universal differ diff --git a/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64 b/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64 index ea50124..f0547f7 100755 Binary files a/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64 and b/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64 differ diff --git a/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Windows-x86_64.exe b/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Windows-x86_64.exe index 24b9059..656bbcb 100755 Binary files a/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Windows-x86_64.exe and b/Plugins/Sentry/Source/ThirdParty/CLI/sentry-cli-Windows-x86_64.exe differ diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.embeddedframework.zip b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.embeddedframework.zip index 944eb15..cde30f4 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.embeddedframework.zip and b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.embeddedframework.zip differ diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/Sentry-Swift.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/Sentry-Swift.h index 91830ec..252e5eb 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/Sentry-Swift.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/Sentry-Swift.h @@ -308,6 +308,19 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +@class SentryDispatchQueueWrapper; +@class SentryDefaultCurrentDateProvider; + +SWIFT_CLASS_NAMED("Dependencies") +@interface SentryDependencies : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDispatchQueueWrapper * _Nonnull dispatchQueueWrapper;) ++ (SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDefaultCurrentDateProvider * _Nonnull dateProvider;) ++ (SentryDefaultCurrentDateProvider * _Nonnull)dateProvider SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + @@ -319,9 +332,33 @@ SWIFT_CLASS("_TtC6Sentry19HTTPHeaderSanitizer") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +@class NSNumber; + +SWIFT_CLASS("_TtC6Sentry13LoadValidator") +@interface LoadValidator : NSObject ++ (void)checkForDuplicatedSDKWithImageName:(NSString * _Nonnull)imageName imageAddress:(NSNumber * _Nonnull)imageAddress imageSize:(NSNumber * _Nonnull)imageSize dispatchQueueWrapper:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + + + +@class NSOperationQueue; +@class NSNotification; +@protocol NSObject; + +SWIFT_PROTOCOL("_TtP6Sentry33SentryNSNotificationCenterWrapper_") +@protocol SentryNSNotificationCenterWrapper +- (void)addObserver:(id _Nonnull)observer selector:(SEL _Nonnull)aSelector name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (id _Nonnull)addObserverForName:(NSNotificationName _Nullable)name object:(id _Nullable)obj queue:(NSOperationQueue * _Nullable)queue usingBlock:(void (^ _Nonnull)(NSNotification * _Nonnull))block SWIFT_WARN_UNUSED_RESULT; +- (void)removeObserver:(id _Nonnull)observer name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (void)postNotification:(NSNotification * _Nonnull)notification; +@end +@interface NSNotificationCenter (SWIFT_EXTENSION(Sentry)) +@end @class SentryExperimentalOptions; @@ -444,30 +481,17 @@ SWIFT_CLASS("_TtC6Sentry26SentryDispatchQueueWrapper") SWIFT_CLASS("_TtC6Sentry28SentryEnabledFeaturesBuilder") @interface SentryEnabledFeaturesBuilder : NSObject -+ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT; ++ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT SWIFT_DEPRECATED_MSG("This is only marked as deprecated because enableAppLaunchProfiling is marked as deprecated. Once that is removed this can be removed."); - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -/// Subclass of SentryEvent so we can add the Decodable implementation via a Swift extension. We need -/// this due to our mixed use of public Swift and ObjC classes. We could avoid this class by -/// converting SentryReplayEvent back to ObjC, but we rather accept this tradeoff as we want to -/// convert all public classes to Swift in the future. This does not need to be public, but was previously -/// defined in objc and was public. In the next major version of the SDK we should make it internal and final -/// and remove the @objc annotation. -/// @note: We can’t add the extension for Decodable directly on SentryEvent, because we get an error -/// in SentryReplayEvent: ‘required’ initializer ‘init(from:)’ must be provided by subclass of -/// ‘Event’ Once we add the initializer with required convenience public init(from decoder: any -/// Decoder) throws { fatalError(“init(from:) has not been implemented”) -/// } -/// we get the error initializer ‘init(from:)’ is declared in extension of ‘Event’ and cannot be -/// overridden. Therefore, we add the Decodable implementation not on the Event, but to a subclass of -/// the event. SWIFT_CLASS_NAMED("SentryEventDecodable") @interface SentryEventDecodable : SentryEvent - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end + @class NSData; SWIFT_CLASS("_TtC6Sentry18SentryEventDecoder") @@ -500,6 +524,8 @@ SWIFT_CLASS("_TtC6Sentry25SentryExperimentalOptions") /// experiment: /// This is an experimental feature and is therefore disabled by default. We’ll enable it by default in a future major release. @property (nonatomic) BOOL enableUnhandledCPPExceptionsV2; +/// Logs are considered beta. +@property (nonatomic) BOOL enableLogs; - (void)validateOptions:(NSDictionary * _Nullable)options; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end @@ -535,7 +561,6 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @interface SentryFeedback (SWIFT_EXTENSION(Sentry)) -- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; @end @class SentryAttachment; @@ -547,6 +572,11 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @end +@interface SentryFeedback (SWIFT_EXTENSION(Sentry)) +- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; +@end + + SWIFT_CLASS("_TtC6Sentry18SentryFileContents") @interface SentryFileContents : NSObject @property (nonatomic, readonly, copy) NSString * _Nonnull path; @@ -603,6 +633,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryId * _ @property (nonatomic, readonly) NSUInteger hash; @end + typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { kSentryLevelNone SWIFT_COMPILE_NAME("none") = 0, kSentryLevelDebug SWIFT_COMPILE_NAME("debug") = 1, @@ -616,11 +647,168 @@ typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { SWIFT_CLASS("_TtC6Sentry17SentryLevelHelper") @interface SentryLevelHelper : NSObject + (NSString * _Nonnull)nameForLevel:(enum SentryLevel)level SWIFT_WARN_UNUSED_RESULT; -+ (enum SentryLevel)levelForName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT; ++ (enum SentryLevel)levelForName:(NSString * _Nullable)name SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +enum SentryStructuredLogLevel : NSInteger; +@class SentryStructuredLogAttribute; + +/// A structured log entry that captures log data with associated attribute metadata. +/// Use the options.beforeSendLog callback to modify or filter log data. +SWIFT_CLASS("_TtC6Sentry9SentryLog") +@interface SentryLog : NSObject +/// The timestamp when the log event occurred +@property (nonatomic, copy) NSDate * _Nonnull timestamp; +/// The trace ID to associate this log with distributed tracing +@property (nonatomic, strong) SentryId * _Nonnull traceId; +/// The severity level of the log entry +@property (nonatomic) enum SentryStructuredLogLevel level; +/// The main log message content +@property (nonatomic, copy) NSString * _Nonnull body; +/// A dictionary of structured attributes added to the log entry +@property (nonatomic, copy) NSDictionary * _Nonnull attributes; +/// Numeric representation of the severity level (Int) +@property (nonatomic, strong) NSNumber * _Nullable severityNumber; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + +/// Represents the severity level of a structured log entry. +/// Log levels are ordered by severity from least (trace) to most severe (fatal). +/// Each level corresponds to a numeric severity value following the OpenTelemetry specification. +typedef SWIFT_ENUM_NAMED(NSInteger, SentryStructuredLogLevel, "Level", open) { + SentryStructuredLogLevelTrace = 0, + SentryStructuredLogLevelDebug = 1, + SentryStructuredLogLevelInfo = 2, + SentryStructuredLogLevelWarn = 3, + SentryStructuredLogLevelError = 4, + SentryStructuredLogLevelFatal = 5, +}; + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + + +/// A typed attribute that can be attached to structured log entries. +/// Attribute provides a type-safe way to store structured data alongside log messages. +/// Supports String, Bool, Int, and Double types. +SWIFT_CLASS_NAMED("Attribute") +@interface SentryStructuredLogAttribute : NSObject +/// The type identifier for this attribute (“string”, “boolean”, “integer”, “double”) +@property (nonatomic, readonly, copy) NSString * _Nonnull type; +/// The actual value stored in this attribute +@property (nonatomic, readonly) id _Nonnull value; +- (nonnull instancetype)initWithString:(NSString * _Nonnull)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithBoolean:(BOOL)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithInteger:(NSInteger)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithDouble:(double)value OBJC_DESIGNATED_INITIALIZER; +/// Creates a double attribute from a float value +- (nonnull instancetype)initWithFloat:(float)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@class SentryClient; + +SWIFT_CLASS("_TtC6Sentry16SentryLogBatcher") +@interface SentryLogBatcher : NSObject +/// Initializes a new SentryLogBatcher. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param flushTimeout The timeout interval after which buffered logs will be flushed +/// +/// \param maxBufferSizeBytes The maximum buffer size in bytes before triggering an immediate flush +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client flushTimeout:(NSTimeInterval)flushTimeout maxBufferSizeBytes:(NSInteger)maxBufferSizeBytes dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue OBJC_DESIGNATED_INITIALIZER; +/// Convenience initializer with default flush timeout and buffer size. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +/// EXPERIMENTAL - A structured logging API for Sentry. +/// SentryLogger provides a structured logging interface that captures log entries +/// and sends them to Sentry. Supports multiple log levels (trace, debug, info, warn, +/// error, fatal) and allows attaching arbitrary attributes for enhanced context. +///

Supported Attribute Types

+/// note: +/// Sentry Logs is currently in Beta. See the Sentry Logs Documentation. +/// warning: +/// This API is experimental and subject to change without notice. +///
    +///
  • +/// String, Bool, Int, Double +///
  • +///
  • +/// Float (converted to Double) +///
  • +///
  • +/// Other types (converted to string) +///
  • +///
+///

Usage

+/// \code +/// let logger = SentrySDK.logger +/// logger.info("User logged in", attributes: ["userId": "12345"]) +/// logger.error("Payment failed", attributes: ["errorCode": 500]) +/// +/// // Structured string interpolation with automatic type detection +/// logger.info("User \(userId) processed \(count) items with \(percentage)% success") +/// logger.debug("Processing \(itemCount) items, active: \(isActive)") +/// logger.warn("Retry attempt \(currentAttempt) of \(maxAttempts) failed") +/// +/// \endcode +SWIFT_CLASS("_TtC6Sentry12SentryLogger") +@interface SentryLogger : NSObject +/// Logs a trace-level message. +- (void)trace:(NSString * _Nonnull)body; +/// Logs a trace-level message with additional attributes. +- (void)trace:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a debug-level message. +- (void)debug:(NSString * _Nonnull)body; +/// Logs a debug-level message with additional attributes. +- (void)debug:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an info-level message. +- (void)info:(NSString * _Nonnull)body; +/// Logs an info-level message with additional attributes. +- (void)info:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a warning-level message. +- (void)warn:(NSString * _Nonnull)body; +/// Logs a warning-level message with additional attributes. +- (void)warn:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an error-level message. +- (void)error:(NSString * _Nonnull)body; +/// Logs an error-level message with additional attributes. +- (void)error:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a fatal-level message. +- (void)fatal:(NSString * _Nonnull)body; +/// Logs a fatal-level message with additional attributes. +- (void)fatal:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + @class SentryMXFrame; SWIFT_CLASS("_TtC6Sentry17SentryMXCallStack") @@ -694,6 +882,7 @@ SWIFT_CLASS("_TtC6Sentry24SentryMaskingPreviewView") + @class SentryVideoInfo; SWIFT_PROTOCOL("_TtP6Sentry22SentryReplayVideoMaker_") @@ -828,6 +1017,7 @@ SWIFT_PROTOCOL_NAMED("SentryRRWebEventProtocol") SWIFT_CLASS("_TtC6Sentry16SentryRRWebEvent") @interface SentryRRWebEvent : NSObject +@property (nonatomic, readonly, copy) NSDictionary * _Nullable data; - (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @@ -1092,6 +1282,340 @@ typedef SWIFT_ENUM(NSInteger, SentryReplayType, open) { +@protocol SentrySpan; +@class SentryReplayApi; +@class SentryScope; +@class SentryTransactionContext; +@class NSException; +@class SentryUserFeedback; +@class SentryFeedbackAPI; +@class SentryUser; + +/// The main entry point for the Sentry SDK. +/// We recommend using start(configureOptions:) to initialize Sentry. +SWIFT_CLASS("_TtC6Sentry9SentrySDK") +@interface SentrySDK : NSObject +/// The current active transaction or span bound to the scope. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) id _Nullable span;) ++ (id _Nullable)span SWIFT_WARN_UNUSED_RESULT; +/// Indicates whether the Sentry SDK is enabled. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL isEnabled;) ++ (BOOL)isEnabled SWIFT_WARN_UNUSED_RESULT; +/// API to control session replay +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryReplayApi * _Nonnull replay;) ++ (SentryReplayApi * _Nonnull)replay SWIFT_WARN_UNUSED_RESULT; +/// API to access Sentry logs +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryLogger * _Nonnull logger;) ++ (SentryLogger * _Nonnull)logger SWIFT_WARN_UNUSED_RESULT; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithOptions:(SentryOptions * _Nonnull)options; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithConfigureOptions:(void (^ _Nonnull)(SentryOptions * _Nonnull))configureOptions; +/// Captures a manually created event and sends it to Sentry. +/// \param event The event to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event; +/// Captures a manually created event and sends it to Sentry. Only the data in this scope object will +/// be added to the event. The global scope will be ignored. +/// \param event The event to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScope:(SentryScope * _Nonnull)scope; +/// Captures a manually created event and sends it to Sentry. Maintains the global scope but mutates +/// scope data for only this call. +/// \param event The event to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Captures an error event and sends it to Sentry. +/// \param error The error to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error; +/// Captures an error event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param error The error to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScope:(SentryScope * _Nonnull)scope; +/// Captures an error event and sends it to Sentry. Maintains the global scope but mutates scope data +/// for only this call. +/// \param error The error to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures an exception event and sends it to Sentry. +/// \param exception The exception to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception; +/// Captures an exception event and sends it to Sentry. Only the data in this scope object will be +/// added to the event. The global scope will be ignored. +/// \param exception The exception to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScope:(SentryScope * _Nonnull)scope; +/// Captures an exception event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param exception The exception to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures a message event and sends it to Sentry. +/// \param message The message to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message; +/// Captures a message event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param message The message to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScope:(SentryScope * _Nonnull)scope; +/// Captures a message event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param message The message to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// \param userFeedback The user feedback to send to Sentry. +/// ++ (void)captureUserFeedback:(SentryUserFeedback * _Nonnull)userFeedback SWIFT_DEPRECATED_MSG("Use SentrySDK.back or use or configure our new managed UX with SentryOptions.configureUserFeedback."); +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// warning: +/// This is an experimental feature and may still have bugs. +/// note: +/// If you’d prefer not to have to build the UI required to gather the feedback from the user, +/// see SentryOptions.configureUserFeedback to customize a fully managed integration. See +/// https://docs.sentry.io/platforms/apple/user-feedback/ for more information. +/// \param feedback The feedback to send to Sentry. +/// ++ (void)captureFeedback:(SentryFeedback * _Nonnull)feedback; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryFeedbackAPI * _Nonnull feedback SWIFT_AVAILABILITY(ios,introduced=13.0);) ++ (SentryFeedbackAPI * _Nonnull)feedback SWIFT_WARN_UNUSED_RESULT; +/// Adds a Breadcrumb to the current Scope of the current Hub. If the total number of breadcrumbs +/// exceeds the SentryOptions.maxBreadcrumbs the SDK removes the oldest breadcrumb. +/// \param crumb The Breadcrumb to add to the current Scope of the current Hub. +/// ++ (void)addBreadcrumb:(SentryBreadcrumb * _Nonnull)crumb; +/// Use this method to modify the current Scope of the current Hub. The SDK uses the Scope to attach +/// contextual data to events. +/// \param callback The callback for configuring the current Scope of the current Hub. +/// ++ (void)configureScope:(void (^ _Nonnull)(SentryScope * _Nonnull))callback; +/// Checks if the last program execution terminated with a crash. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL crashedLastRun;) ++ (BOOL)crashedLastRun SWIFT_WARN_UNUSED_RESULT; +/// Checks if the SDK detected a start-up crash during SDK initialization. +/// note: +/// The SDK init waits synchronously for up to 5 seconds to flush out events if the app crashes +/// within 2 seconds after the SDK init. +/// +/// returns: +/// true if the SDK detected a start-up crash and false if not. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL detectedStartUpCrash;) ++ (BOOL)detectedStartUpCrash SWIFT_WARN_UNUSED_RESULT; +/// Set user to the current Scope of the current Hub. +/// note: +/// You must start the SDK before calling this method, otherwise it doesn’t set the user. +/// \param user The user to set to the current Scope. +/// ++ (void)setUser:(SentryUser * _Nullable)user; +/// Starts a new SentrySession. If there’s a running SentrySession, it ends it before starting the +/// new one. You can use this method in combination with endSession to manually track +/// sessions. The SDK uses SentrySession to inform Sentry about release and project +/// associated project health. ++ (void)startSession; +/// Ends the current SentrySession. You can use this method in combination with startSession to +/// manually track SentrySessions. The SDK uses SentrySession to inform Sentry about release and +/// project associated project health. ++ (void)endSession; +/// This forces a crash, useful to test the SentryCrash integration. +/// note: +/// The SDK can’t report a crash when a debugger is attached. Your application needs to run +/// without a debugger attached to capture the crash and send it to Sentry the next time you launch +/// your application. ++ (void)crash; +/// Reports to the ongoing UIViewController transaction +/// that the screen contents are fully loaded and displayed, +/// which will create a new span. +/// seealso: +/// +/// https://docs.sentry.io/platforms/cocoa/performance/instrumentation/automatic-instrumentation/#time-to-full-display ++ (void)reportFullyDisplayed; +/// Pauses sending detected app hangs to Sentry. +/// This method doesn’t close the detection of app hangs. Instead, the app hang detection +/// will ignore detected app hangs until you call resumeAppHangTracking. ++ (void)pauseAppHangTracking; +/// Resumes sending detected app hangs to Sentry. ++ (void)resumeAppHangTracking; +/// Waits synchronously for the SDK to flush out all queued and cached items for up to the specified +/// timeout in seconds. If there is no internet connection, the function returns immediately. The SDK +/// doesn’t dispose the client or the hub. +/// note: +/// This might take slightly longer than the specified timeout if there are many batched logs to capture. +/// \param timeout The time to wait for the SDK to complete the flush. +/// ++ (void)flush:(NSTimeInterval)timeout; +/// Closes the SDK, uninstalls all the integrations, and calls flush with +/// SentryOptions.shutdownTimeInterval. ++ (void)close; +/// Start a new continuous profiling session if one is not already running. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Unlike transaction-based profiling, continuous profiling does not take into account +/// SentryOptions.profilesSampleRate or SentryOptions.profilesSampler. If either of those +/// options are set, this method does nothing. +/// note: +/// Taking into account the above note, if SentryOptions.configureProfiling is not set, +/// calls to this method will always start a profile if one is not already running. This includes app +/// launch profiles configured with SentryOptions.enableAppLaunchProfiling. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if the profiling +/// session is not sampled with respect to SentryOptions.profileSessionSampleRate, or if it is +/// sampled but the profiler is already running. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if +/// SentryOptions.profileLifecycle is set to trace. In this scenario, the profiler is +/// automatically started and stopped depending on whether there is an active sampled span, so it is +/// not permitted to manually start profiling. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)startProfiler; +/// Stop a continuous profiling session if there is one ongoing. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Does nothing if SentryOptions.profileLifecycle is set to trace. +/// note: +/// Does not immediately stop the profiler. Profiling data is uploaded at regular timed +/// intervals; when the current interval completes, then the profiler stops and the data gathered +/// during that last interval is uploaded. +/// note: +/// If a new call to startProfiler that would start the profiler is made before the last +/// interval completes, the profiler will continue running until another call to stop is made. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)stopProfiler; +/// note: +/// Conceptually internal but needs to be marked public with SPI for ObjC visibility ++ (void)clearLogger; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + /// A note on the thread safety: /// The methods configure and log don’t use synchronization mechanisms, meaning they aren’t strictly speaking thread-safe. @@ -1130,7 +1654,6 @@ SWIFT_CLASS("_TtC6Sentry34SentrySRDefaultBreadcrumbConverter") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -@class SentryUser; SWIFT_CLASS("_TtC6Sentry26SentryScopePersistentStore") @interface SentryScopePersistentStore : NSObject @@ -1466,7 +1989,7 @@ SWIFT_CLASS("_TtC6Sentry31SentryUserFeedbackFormViewModel") SWIFT_AVAILABILITY(i /// An integration managing a workflow for end users to report feedback via Sentry. /// note: /// The default method to show the feedback form is via a floating widget placed in the bottom trailing corner of the screen. See the configuration classes for alternative options. -SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackIntegrationDriver") SWIFT_AVAILABILITY(ios,introduced=13.0) +SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackIntegrationDriver") SWIFT_AVAILABILITY(ios_app_extension,unavailable) SWIFT_AVAILABILITY(ios,introduced=13.0) @interface SentryUserFeedbackIntegrationDriver : NSObject - (nonnull instancetype)initWithConfiguration:(SentryUserFeedbackConfiguration * _Nonnull)configuration delegate:(id _Nonnull)delegate screenshotProvider:(SentryScreenshot * _Nonnull)screenshotProvider OBJC_DESIGNATED_INITIALIZER; - (void)showWidget; @@ -1476,16 +1999,16 @@ SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackIntegrationDriver") SWIFT_AVAILABILI @end - @class UIPresentationController; -SWIFT_AVAILABILITY(ios,introduced=13.0) +SWIFT_AVAILABILITY(ios_app_extension,unavailable) SWIFT_AVAILABILITY(ios,introduced=13.0) @interface SentryUserFeedbackIntegrationDriver (SWIFT_EXTENSION(Sentry)) - (void)presentationControllerDidDismiss:(UIPresentationController * _Nonnull)presentationController; @end + SWIFT_PROTOCOL("_TtP6Sentry43SentryUserFeedbackIntegrationDriverDelegate_") SWIFT_AVAILABILITY(ios,introduced=13.0) @protocol SentryUserFeedbackIntegrationDriverDelegate - (void)captureWithFeedback:(SentryFeedback * _Nonnull)feedback; @@ -2028,6 +2551,19 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +@class SentryDispatchQueueWrapper; +@class SentryDefaultCurrentDateProvider; + +SWIFT_CLASS_NAMED("Dependencies") +@interface SentryDependencies : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDispatchQueueWrapper * _Nonnull dispatchQueueWrapper;) ++ (SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDefaultCurrentDateProvider * _Nonnull dateProvider;) ++ (SentryDefaultCurrentDateProvider * _Nonnull)dateProvider SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + @@ -2039,9 +2575,33 @@ SWIFT_CLASS("_TtC6Sentry19HTTPHeaderSanitizer") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +@class NSNumber; + +SWIFT_CLASS("_TtC6Sentry13LoadValidator") +@interface LoadValidator : NSObject ++ (void)checkForDuplicatedSDKWithImageName:(NSString * _Nonnull)imageName imageAddress:(NSNumber * _Nonnull)imageAddress imageSize:(NSNumber * _Nonnull)imageSize dispatchQueueWrapper:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + + + +@class NSOperationQueue; +@class NSNotification; +@protocol NSObject; + +SWIFT_PROTOCOL("_TtP6Sentry33SentryNSNotificationCenterWrapper_") +@protocol SentryNSNotificationCenterWrapper +- (void)addObserver:(id _Nonnull)observer selector:(SEL _Nonnull)aSelector name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (id _Nonnull)addObserverForName:(NSNotificationName _Nullable)name object:(id _Nullable)obj queue:(NSOperationQueue * _Nullable)queue usingBlock:(void (^ _Nonnull)(NSNotification * _Nonnull))block SWIFT_WARN_UNUSED_RESULT; +- (void)removeObserver:(id _Nonnull)observer name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (void)postNotification:(NSNotification * _Nonnull)notification; +@end +@interface NSNotificationCenter (SWIFT_EXTENSION(Sentry)) +@end @class SentryExperimentalOptions; @@ -2164,30 +2724,17 @@ SWIFT_CLASS("_TtC6Sentry26SentryDispatchQueueWrapper") SWIFT_CLASS("_TtC6Sentry28SentryEnabledFeaturesBuilder") @interface SentryEnabledFeaturesBuilder : NSObject -+ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT; ++ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT SWIFT_DEPRECATED_MSG("This is only marked as deprecated because enableAppLaunchProfiling is marked as deprecated. Once that is removed this can be removed."); - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -/// Subclass of SentryEvent so we can add the Decodable implementation via a Swift extension. We need -/// this due to our mixed use of public Swift and ObjC classes. We could avoid this class by -/// converting SentryReplayEvent back to ObjC, but we rather accept this tradeoff as we want to -/// convert all public classes to Swift in the future. This does not need to be public, but was previously -/// defined in objc and was public. In the next major version of the SDK we should make it internal and final -/// and remove the @objc annotation. -/// @note: We can’t add the extension for Decodable directly on SentryEvent, because we get an error -/// in SentryReplayEvent: ‘required’ initializer ‘init(from:)’ must be provided by subclass of -/// ‘Event’ Once we add the initializer with required convenience public init(from decoder: any -/// Decoder) throws { fatalError(“init(from:) has not been implemented”) -/// } -/// we get the error initializer ‘init(from:)’ is declared in extension of ‘Event’ and cannot be -/// overridden. Therefore, we add the Decodable implementation not on the Event, but to a subclass of -/// the event. SWIFT_CLASS_NAMED("SentryEventDecodable") @interface SentryEventDecodable : SentryEvent - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end + @class NSData; SWIFT_CLASS("_TtC6Sentry18SentryEventDecoder") @@ -2220,6 +2767,8 @@ SWIFT_CLASS("_TtC6Sentry25SentryExperimentalOptions") /// experiment: /// This is an experimental feature and is therefore disabled by default. We’ll enable it by default in a future major release. @property (nonatomic) BOOL enableUnhandledCPPExceptionsV2; +/// Logs are considered beta. +@property (nonatomic) BOOL enableLogs; - (void)validateOptions:(NSDictionary * _Nullable)options; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end @@ -2255,7 +2804,6 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @interface SentryFeedback (SWIFT_EXTENSION(Sentry)) -- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; @end @class SentryAttachment; @@ -2267,6 +2815,11 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @end +@interface SentryFeedback (SWIFT_EXTENSION(Sentry)) +- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; +@end + + SWIFT_CLASS("_TtC6Sentry18SentryFileContents") @interface SentryFileContents : NSObject @property (nonatomic, readonly, copy) NSString * _Nonnull path; @@ -2323,6 +2876,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryId * _ @property (nonatomic, readonly) NSUInteger hash; @end + typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { kSentryLevelNone SWIFT_COMPILE_NAME("none") = 0, kSentryLevelDebug SWIFT_COMPILE_NAME("debug") = 1, @@ -2336,11 +2890,168 @@ typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { SWIFT_CLASS("_TtC6Sentry17SentryLevelHelper") @interface SentryLevelHelper : NSObject + (NSString * _Nonnull)nameForLevel:(enum SentryLevel)level SWIFT_WARN_UNUSED_RESULT; -+ (enum SentryLevel)levelForName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT; ++ (enum SentryLevel)levelForName:(NSString * _Nullable)name SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +enum SentryStructuredLogLevel : NSInteger; +@class SentryStructuredLogAttribute; + +/// A structured log entry that captures log data with associated attribute metadata. +/// Use the options.beforeSendLog callback to modify or filter log data. +SWIFT_CLASS("_TtC6Sentry9SentryLog") +@interface SentryLog : NSObject +/// The timestamp when the log event occurred +@property (nonatomic, copy) NSDate * _Nonnull timestamp; +/// The trace ID to associate this log with distributed tracing +@property (nonatomic, strong) SentryId * _Nonnull traceId; +/// The severity level of the log entry +@property (nonatomic) enum SentryStructuredLogLevel level; +/// The main log message content +@property (nonatomic, copy) NSString * _Nonnull body; +/// A dictionary of structured attributes added to the log entry +@property (nonatomic, copy) NSDictionary * _Nonnull attributes; +/// Numeric representation of the severity level (Int) +@property (nonatomic, strong) NSNumber * _Nullable severityNumber; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + +/// Represents the severity level of a structured log entry. +/// Log levels are ordered by severity from least (trace) to most severe (fatal). +/// Each level corresponds to a numeric severity value following the OpenTelemetry specification. +typedef SWIFT_ENUM_NAMED(NSInteger, SentryStructuredLogLevel, "Level", open) { + SentryStructuredLogLevelTrace = 0, + SentryStructuredLogLevelDebug = 1, + SentryStructuredLogLevelInfo = 2, + SentryStructuredLogLevelWarn = 3, + SentryStructuredLogLevelError = 4, + SentryStructuredLogLevelFatal = 5, +}; + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + + +/// A typed attribute that can be attached to structured log entries. +/// Attribute provides a type-safe way to store structured data alongside log messages. +/// Supports String, Bool, Int, and Double types. +SWIFT_CLASS_NAMED("Attribute") +@interface SentryStructuredLogAttribute : NSObject +/// The type identifier for this attribute (“string”, “boolean”, “integer”, “double”) +@property (nonatomic, readonly, copy) NSString * _Nonnull type; +/// The actual value stored in this attribute +@property (nonatomic, readonly) id _Nonnull value; +- (nonnull instancetype)initWithString:(NSString * _Nonnull)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithBoolean:(BOOL)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithInteger:(NSInteger)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithDouble:(double)value OBJC_DESIGNATED_INITIALIZER; +/// Creates a double attribute from a float value +- (nonnull instancetype)initWithFloat:(float)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@class SentryClient; + +SWIFT_CLASS("_TtC6Sentry16SentryLogBatcher") +@interface SentryLogBatcher : NSObject +/// Initializes a new SentryLogBatcher. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param flushTimeout The timeout interval after which buffered logs will be flushed +/// +/// \param maxBufferSizeBytes The maximum buffer size in bytes before triggering an immediate flush +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client flushTimeout:(NSTimeInterval)flushTimeout maxBufferSizeBytes:(NSInteger)maxBufferSizeBytes dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue OBJC_DESIGNATED_INITIALIZER; +/// Convenience initializer with default flush timeout and buffer size. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +/// EXPERIMENTAL - A structured logging API for Sentry. +/// SentryLogger provides a structured logging interface that captures log entries +/// and sends them to Sentry. Supports multiple log levels (trace, debug, info, warn, +/// error, fatal) and allows attaching arbitrary attributes for enhanced context. +///

Supported Attribute Types

+/// note: +/// Sentry Logs is currently in Beta. See the Sentry Logs Documentation. +/// warning: +/// This API is experimental and subject to change without notice. +///
    +///
  • +/// String, Bool, Int, Double +///
  • +///
  • +/// Float (converted to Double) +///
  • +///
  • +/// Other types (converted to string) +///
  • +///
+///

Usage

+/// \code +/// let logger = SentrySDK.logger +/// logger.info("User logged in", attributes: ["userId": "12345"]) +/// logger.error("Payment failed", attributes: ["errorCode": 500]) +/// +/// // Structured string interpolation with automatic type detection +/// logger.info("User \(userId) processed \(count) items with \(percentage)% success") +/// logger.debug("Processing \(itemCount) items, active: \(isActive)") +/// logger.warn("Retry attempt \(currentAttempt) of \(maxAttempts) failed") +/// +/// \endcode +SWIFT_CLASS("_TtC6Sentry12SentryLogger") +@interface SentryLogger : NSObject +/// Logs a trace-level message. +- (void)trace:(NSString * _Nonnull)body; +/// Logs a trace-level message with additional attributes. +- (void)trace:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a debug-level message. +- (void)debug:(NSString * _Nonnull)body; +/// Logs a debug-level message with additional attributes. +- (void)debug:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an info-level message. +- (void)info:(NSString * _Nonnull)body; +/// Logs an info-level message with additional attributes. +- (void)info:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a warning-level message. +- (void)warn:(NSString * _Nonnull)body; +/// Logs a warning-level message with additional attributes. +- (void)warn:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an error-level message. +- (void)error:(NSString * _Nonnull)body; +/// Logs an error-level message with additional attributes. +- (void)error:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a fatal-level message. +- (void)fatal:(NSString * _Nonnull)body; +/// Logs a fatal-level message with additional attributes. +- (void)fatal:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + @class SentryMXFrame; SWIFT_CLASS("_TtC6Sentry17SentryMXCallStack") @@ -2414,6 +3125,7 @@ SWIFT_CLASS("_TtC6Sentry24SentryMaskingPreviewView") + @class SentryVideoInfo; SWIFT_PROTOCOL("_TtP6Sentry22SentryReplayVideoMaker_") @@ -2548,6 +3260,7 @@ SWIFT_PROTOCOL_NAMED("SentryRRWebEventProtocol") SWIFT_CLASS("_TtC6Sentry16SentryRRWebEvent") @interface SentryRRWebEvent : NSObject +@property (nonatomic, readonly, copy) NSDictionary * _Nullable data; - (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @@ -2812,6 +3525,340 @@ typedef SWIFT_ENUM(NSInteger, SentryReplayType, open) { +@protocol SentrySpan; +@class SentryReplayApi; +@class SentryScope; +@class SentryTransactionContext; +@class NSException; +@class SentryUserFeedback; +@class SentryFeedbackAPI; +@class SentryUser; + +/// The main entry point for the Sentry SDK. +/// We recommend using start(configureOptions:) to initialize Sentry. +SWIFT_CLASS("_TtC6Sentry9SentrySDK") +@interface SentrySDK : NSObject +/// The current active transaction or span bound to the scope. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) id _Nullable span;) ++ (id _Nullable)span SWIFT_WARN_UNUSED_RESULT; +/// Indicates whether the Sentry SDK is enabled. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL isEnabled;) ++ (BOOL)isEnabled SWIFT_WARN_UNUSED_RESULT; +/// API to control session replay +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryReplayApi * _Nonnull replay;) ++ (SentryReplayApi * _Nonnull)replay SWIFT_WARN_UNUSED_RESULT; +/// API to access Sentry logs +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryLogger * _Nonnull logger;) ++ (SentryLogger * _Nonnull)logger SWIFT_WARN_UNUSED_RESULT; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithOptions:(SentryOptions * _Nonnull)options; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithConfigureOptions:(void (^ _Nonnull)(SentryOptions * _Nonnull))configureOptions; +/// Captures a manually created event and sends it to Sentry. +/// \param event The event to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event; +/// Captures a manually created event and sends it to Sentry. Only the data in this scope object will +/// be added to the event. The global scope will be ignored. +/// \param event The event to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScope:(SentryScope * _Nonnull)scope; +/// Captures a manually created event and sends it to Sentry. Maintains the global scope but mutates +/// scope data for only this call. +/// \param event The event to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Captures an error event and sends it to Sentry. +/// \param error The error to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error; +/// Captures an error event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param error The error to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScope:(SentryScope * _Nonnull)scope; +/// Captures an error event and sends it to Sentry. Maintains the global scope but mutates scope data +/// for only this call. +/// \param error The error to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures an exception event and sends it to Sentry. +/// \param exception The exception to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception; +/// Captures an exception event and sends it to Sentry. Only the data in this scope object will be +/// added to the event. The global scope will be ignored. +/// \param exception The exception to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScope:(SentryScope * _Nonnull)scope; +/// Captures an exception event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param exception The exception to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures a message event and sends it to Sentry. +/// \param message The message to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message; +/// Captures a message event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param message The message to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScope:(SentryScope * _Nonnull)scope; +/// Captures a message event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param message The message to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// \param userFeedback The user feedback to send to Sentry. +/// ++ (void)captureUserFeedback:(SentryUserFeedback * _Nonnull)userFeedback SWIFT_DEPRECATED_MSG("Use SentrySDK.back or use or configure our new managed UX with SentryOptions.configureUserFeedback."); +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// warning: +/// This is an experimental feature and may still have bugs. +/// note: +/// If you’d prefer not to have to build the UI required to gather the feedback from the user, +/// see SentryOptions.configureUserFeedback to customize a fully managed integration. See +/// https://docs.sentry.io/platforms/apple/user-feedback/ for more information. +/// \param feedback The feedback to send to Sentry. +/// ++ (void)captureFeedback:(SentryFeedback * _Nonnull)feedback; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryFeedbackAPI * _Nonnull feedback SWIFT_AVAILABILITY(ios,introduced=13.0);) ++ (SentryFeedbackAPI * _Nonnull)feedback SWIFT_WARN_UNUSED_RESULT; +/// Adds a Breadcrumb to the current Scope of the current Hub. If the total number of breadcrumbs +/// exceeds the SentryOptions.maxBreadcrumbs the SDK removes the oldest breadcrumb. +/// \param crumb The Breadcrumb to add to the current Scope of the current Hub. +/// ++ (void)addBreadcrumb:(SentryBreadcrumb * _Nonnull)crumb; +/// Use this method to modify the current Scope of the current Hub. The SDK uses the Scope to attach +/// contextual data to events. +/// \param callback The callback for configuring the current Scope of the current Hub. +/// ++ (void)configureScope:(void (^ _Nonnull)(SentryScope * _Nonnull))callback; +/// Checks if the last program execution terminated with a crash. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL crashedLastRun;) ++ (BOOL)crashedLastRun SWIFT_WARN_UNUSED_RESULT; +/// Checks if the SDK detected a start-up crash during SDK initialization. +/// note: +/// The SDK init waits synchronously for up to 5 seconds to flush out events if the app crashes +/// within 2 seconds after the SDK init. +/// +/// returns: +/// true if the SDK detected a start-up crash and false if not. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL detectedStartUpCrash;) ++ (BOOL)detectedStartUpCrash SWIFT_WARN_UNUSED_RESULT; +/// Set user to the current Scope of the current Hub. +/// note: +/// You must start the SDK before calling this method, otherwise it doesn’t set the user. +/// \param user The user to set to the current Scope. +/// ++ (void)setUser:(SentryUser * _Nullable)user; +/// Starts a new SentrySession. If there’s a running SentrySession, it ends it before starting the +/// new one. You can use this method in combination with endSession to manually track +/// sessions. The SDK uses SentrySession to inform Sentry about release and project +/// associated project health. ++ (void)startSession; +/// Ends the current SentrySession. You can use this method in combination with startSession to +/// manually track SentrySessions. The SDK uses SentrySession to inform Sentry about release and +/// project associated project health. ++ (void)endSession; +/// This forces a crash, useful to test the SentryCrash integration. +/// note: +/// The SDK can’t report a crash when a debugger is attached. Your application needs to run +/// without a debugger attached to capture the crash and send it to Sentry the next time you launch +/// your application. ++ (void)crash; +/// Reports to the ongoing UIViewController transaction +/// that the screen contents are fully loaded and displayed, +/// which will create a new span. +/// seealso: +/// +/// https://docs.sentry.io/platforms/cocoa/performance/instrumentation/automatic-instrumentation/#time-to-full-display ++ (void)reportFullyDisplayed; +/// Pauses sending detected app hangs to Sentry. +/// This method doesn’t close the detection of app hangs. Instead, the app hang detection +/// will ignore detected app hangs until you call resumeAppHangTracking. ++ (void)pauseAppHangTracking; +/// Resumes sending detected app hangs to Sentry. ++ (void)resumeAppHangTracking; +/// Waits synchronously for the SDK to flush out all queued and cached items for up to the specified +/// timeout in seconds. If there is no internet connection, the function returns immediately. The SDK +/// doesn’t dispose the client or the hub. +/// note: +/// This might take slightly longer than the specified timeout if there are many batched logs to capture. +/// \param timeout The time to wait for the SDK to complete the flush. +/// ++ (void)flush:(NSTimeInterval)timeout; +/// Closes the SDK, uninstalls all the integrations, and calls flush with +/// SentryOptions.shutdownTimeInterval. ++ (void)close; +/// Start a new continuous profiling session if one is not already running. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Unlike transaction-based profiling, continuous profiling does not take into account +/// SentryOptions.profilesSampleRate or SentryOptions.profilesSampler. If either of those +/// options are set, this method does nothing. +/// note: +/// Taking into account the above note, if SentryOptions.configureProfiling is not set, +/// calls to this method will always start a profile if one is not already running. This includes app +/// launch profiles configured with SentryOptions.enableAppLaunchProfiling. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if the profiling +/// session is not sampled with respect to SentryOptions.profileSessionSampleRate, or if it is +/// sampled but the profiler is already running. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if +/// SentryOptions.profileLifecycle is set to trace. In this scenario, the profiler is +/// automatically started and stopped depending on whether there is an active sampled span, so it is +/// not permitted to manually start profiling. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)startProfiler; +/// Stop a continuous profiling session if there is one ongoing. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Does nothing if SentryOptions.profileLifecycle is set to trace. +/// note: +/// Does not immediately stop the profiler. Profiling data is uploaded at regular timed +/// intervals; when the current interval completes, then the profiler stops and the data gathered +/// during that last interval is uploaded. +/// note: +/// If a new call to startProfiler that would start the profiler is made before the last +/// interval completes, the profiler will continue running until another call to stop is made. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)stopProfiler; +/// note: +/// Conceptually internal but needs to be marked public with SPI for ObjC visibility ++ (void)clearLogger; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + /// A note on the thread safety: /// The methods configure and log don’t use synchronization mechanisms, meaning they aren’t strictly speaking thread-safe. @@ -2850,7 +3897,6 @@ SWIFT_CLASS("_TtC6Sentry34SentrySRDefaultBreadcrumbConverter") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -@class SentryUser; SWIFT_CLASS("_TtC6Sentry26SentryScopePersistentStore") @interface SentryScopePersistentStore : NSObject @@ -3186,7 +4232,7 @@ SWIFT_CLASS("_TtC6Sentry31SentryUserFeedbackFormViewModel") SWIFT_AVAILABILITY(i /// An integration managing a workflow for end users to report feedback via Sentry. /// note: /// The default method to show the feedback form is via a floating widget placed in the bottom trailing corner of the screen. See the configuration classes for alternative options. -SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackIntegrationDriver") SWIFT_AVAILABILITY(ios,introduced=13.0) +SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackIntegrationDriver") SWIFT_AVAILABILITY(ios_app_extension,unavailable) SWIFT_AVAILABILITY(ios,introduced=13.0) @interface SentryUserFeedbackIntegrationDriver : NSObject - (nonnull instancetype)initWithConfiguration:(SentryUserFeedbackConfiguration * _Nonnull)configuration delegate:(id _Nonnull)delegate screenshotProvider:(SentryScreenshot * _Nonnull)screenshotProvider OBJC_DESIGNATED_INITIALIZER; - (void)showWidget; @@ -3196,16 +4242,16 @@ SWIFT_CLASS("_TtC6Sentry35SentryUserFeedbackIntegrationDriver") SWIFT_AVAILABILI @end - @class UIPresentationController; -SWIFT_AVAILABILITY(ios,introduced=13.0) +SWIFT_AVAILABILITY(ios_app_extension,unavailable) SWIFT_AVAILABILITY(ios,introduced=13.0) @interface SentryUserFeedbackIntegrationDriver (SWIFT_EXTENSION(Sentry)) - (void)presentationControllerDidDismiss:(UIPresentationController * _Nonnull)presentationController; @end + SWIFT_PROTOCOL("_TtP6Sentry43SentryUserFeedbackIntegrationDriverDelegate_") SWIFT_AVAILABILITY(ios,introduced=13.0) @protocol SentryUserFeedbackIntegrationDriverDelegate - (void)captureWithFeedback:(SentryFeedback * _Nonnull)feedback; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/Sentry.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/Sentry.h index 04189c7..d1f1919 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/Sentry.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/Sentry.h @@ -34,7 +34,6 @@ FOUNDATION_EXPORT const unsigned char SentryVersionString[]; # import # import # import -# import # import # import # import diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryBaggage.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryBaggage.h index 54223b0..26a8483 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryBaggage.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryBaggage.h @@ -43,7 +43,9 @@ NS_SWIFT_NAME(Baggage) /** * The value of a segment attribute in the user's data bag, if it exists. */ +#if !SDK_V9 @property (nullable, nonatomic, readonly) NSString *userSegment; +#endif /** * The random value used to determine if the trace is sampled. @@ -69,7 +71,9 @@ NS_SWIFT_NAME(Baggage) releaseName:(nullable NSString *)releaseName environment:(nullable NSString *)environment transaction:(nullable NSString *)transaction +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif sampleRate:(nullable NSString *)sampleRate sampled:(nullable NSString *)sampled replayId:(nullable NSString *)replayId; @@ -79,7 +83,9 @@ NS_SWIFT_NAME(Baggage) releaseName:(nullable NSString *)releaseName environment:(nullable NSString *)environment transaction:(nullable NSString *)transaction +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif sampleRate:(nullable NSString *)sampleRate sampleRand:(nullable NSString *)sampleRand sampled:(nullable NSString *)sampled diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryBreadcrumb.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryBreadcrumb.h index 559d6a4..15c56dc 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryBreadcrumb.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryBreadcrumb.h @@ -6,12 +6,17 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN NS_SWIFT_NAME(Breadcrumb) -@interface SentryBreadcrumb : NSObject +@interface SentryBreadcrumb : NSObject +#if !SDK_V9 + +#endif /** * Level of breadcrumb @@ -59,7 +64,9 @@ NS_SWIFT_NAME(Breadcrumb) - (instancetype)init; + (instancetype)new NS_UNAVAILABLE; +#if !SDK_V9 - (NSDictionary *)serialize; +#endif // !SDK_V9 - (BOOL)isEqual:(id _Nullable)other; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDebugImageProvider.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDebugImageProvider.h index 552ef8b..615f35e 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDebugImageProvider.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDebugImageProvider.h @@ -1,4 +1,6 @@ -#import +#if !SDK_V9 + +# import @class SentryDebugMeta; @class SentryFrame; @@ -88,3 +90,5 @@ NS_ASSUME_NONNULL_BEGIN @end NS_ASSUME_NONNULL_END + +#endif // !SDK_V9 diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDebugMeta.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDebugMeta.h index a451bef..4b1a08b 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDebugMeta.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDebugMeta.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -20,7 +22,10 @@ NS_ASSUME_NONNULL_BEGIN * @c SentryDebugImage in a future version. */ NS_SWIFT_NAME(DebugMeta) -@interface SentryDebugMeta : NSObject +@interface SentryDebugMeta : NSObject +#if !SDK_V9 + +#endif /** * The UUID of the image. Use @c debugID when using "macho" as the @c type . diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDefines.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDefines.h index e9ed26f..e04befb 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDefines.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDefines.h @@ -75,6 +75,7 @@ @class SentryEvent; @class SentrySamplingContext; @class SentryUserFeedbackConfiguration; +@class SentryLog; @protocol SentrySpan; /** @@ -107,6 +108,14 @@ typedef SentryEvent *_Nullable (^SentryBeforeSendEventCallback)(SentryEvent *_No */ typedef id _Nullable (^SentryBeforeSendSpanCallback)(id _Nonnull span); +#if !SWIFT_PACKAGE +/** + * Use this block to drop or modify a log before the SDK sends it to Sentry. Return @c nil to drop + * the log. + */ +typedef SentryLog *_Nullable (^SentryBeforeSendLogCallback)(SentryLog *_Nonnull log); +#endif // !SWIFT_PACKAGE + /** * Block can be used to decide if the SDK should capture a screenshot or not. Return @c true if the * SDK should capture a screenshot, return @c false if not. This callback doesn't work for crashes. diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDsn.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDsn.h index 206e800..db3f4ba 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDsn.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryDsn.h @@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN - (NSString *)getHash; -#if !SDK_v9 +#if !SDK_V9 - (NSURL *)getStoreEndpoint DEPRECATED_MSG_ATTRIBUTE("This endpoint is no longer used"); #endif // !SDK_V9 - (NSURL *)getEnvelopeEndpoint; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryEnvelopeItemHeader.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryEnvelopeItemHeader.h index 3df7c32..89800fb 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryEnvelopeItemHeader.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryEnvelopeItemHeader.h @@ -5,11 +5,17 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN -@interface SentryEnvelopeItemHeader : NSObject +@interface SentryEnvelopeItemHeader : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT - (instancetype)initWithType:(NSString *)type length:(NSUInteger)length NS_DESIGNATED_INITIALIZER; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryException.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryException.h index a3d37a2..5bd903c 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryException.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryException.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -14,7 +16,11 @@ NS_ASSUME_NONNULL_BEGIN @class SentryStacktrace; NS_SWIFT_NAME(Exception) -@interface SentryException : NSObject +@interface SentryException : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryFeedbackAPI.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryFeedbackAPI.h index be068ce..0252f34 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryFeedbackAPI.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryFeedbackAPI.h @@ -12,7 +12,6 @@ NS_ASSUME_NONNULL_BEGIN -API_AVAILABLE(ios(13.0)) @interface SentryFeedbackAPI : NSObject /** @@ -21,7 +20,8 @@ API_AVAILABLE(ios(13.0)) * @seealso See @c SentryOptions.configureUserFeedback to configure the widget. * @note User feedback widget is only available for iOS 13 or later. */ -- (void)showWidget API_AVAILABLE(ios(13.0)); +- (void)showWidget API_AVAILABLE(ios(13.0)) + NS_EXTENSION_UNAVAILABLE("Sentry User Feedback UI cannot be used from app extensions."); /** * Hide the feedback widget button. @@ -29,7 +29,8 @@ API_AVAILABLE(ios(13.0)) * @seealso See @c SentryOptions.configureUserFeedback to configure the widget. * @note User feedback widget is only available for iOS 13 or later. */ -- (void)hideWidget API_AVAILABLE(ios(13.0)); +- (void)hideWidget API_AVAILABLE(ios(13.0)) + NS_EXTENSION_UNAVAILABLE("Sentry User Feedback UI cannot be used from app extensions."); @end diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryFrame.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryFrame.h index 5ec3057..c459239 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryFrame.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryFrame.h @@ -6,12 +6,17 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN NS_SWIFT_NAME(Frame) -@interface SentryFrame : NSObject +@interface SentryFrame : NSObject +#if !SDK_V9 + +#endif /** * SymbolAddress of the frame @@ -69,6 +74,24 @@ NS_SWIFT_NAME(Frame) */ @property (nonatomic, copy) NSNumber *_Nullable columnNumber; +/** + * Source code line at the error location. + * Mostly used for Godot errors. + */ +@property (nonatomic, copy) NSString *_Nullable contextLine; + +/** + * Source code lines before the error location (up to 5 lines). + * Mostly used for Godot errors. + */ +@property (nonatomic, copy) NSArray *_Nullable preContext; + +/** + * Source code lines after the error location (up to 5 lines). + * Mostly used for Godot errors. + */ +@property (nonatomic, copy) NSArray *_Nullable postContext; + /** * Determines if the Frame is inApp or not */ @@ -79,6 +102,12 @@ NS_SWIFT_NAME(Frame) */ @property (nonatomic, copy) NSNumber *_Nullable stackStart; +/** + * A mapping of variables which were available within this frame. + * Mostly used for Godot errors. + */ +@property (nonatomic, copy) NSDictionary *_Nullable vars; + - (instancetype)init; + (instancetype)new NS_UNAVAILABLE; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryGeo.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryGeo.h index 17de427..88fd241 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryGeo.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryGeo.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -21,7 +23,12 @@ NS_ASSUME_NONNULL_BEGIN /// } /// } NS_SWIFT_NAME(Geo) -@interface SentryGeo : NSObject +@interface SentryGeo : NSObject +#if !SDK_V9 + +#else + +#endif /** * Optional: Human readable city name. diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryHub.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryHub.h index 42c2ef6..fcdf786 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryHub.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryHub.h @@ -12,7 +12,6 @@ @class SentryEvent; @class SentryFeedback; @class SentryId; -@class SentryMetricsAPI; @class SentryScope; @class SentryTransactionContext; @class SentryUser; @@ -25,8 +24,6 @@ SENTRY_NO_INIT - (instancetype)initWithClient:(SentryClient *_Nullable)client andScope:(SentryScope *_Nullable)scope; -@property (nonatomic, readonly) SentryMetricsAPI *metrics; - /** * Starts a new SentrySession. If there's a running SentrySession, it ends it before starting the * new one. You can use this method in combination with endSession to manually track SentrySessions. diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMechanism.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMechanism.h index d2bf603..68643c0 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMechanism.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMechanism.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -14,7 +16,11 @@ NS_ASSUME_NONNULL_BEGIN @class SentryMechanismMeta; NS_SWIFT_NAME(Mechanism) -@interface SentryMechanism : NSObject +@interface SentryMechanism : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMechanismMeta.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMechanismMeta.h index 9f6dff6..3b57a21 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMechanismMeta.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMechanismMeta.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif @class SentryNSError; @@ -18,7 +20,10 @@ NS_ASSUME_NONNULL_BEGIN * @see https://develop.sentry.dev/sdk/event-payloads/exception/#meta-information. */ NS_SWIFT_NAME(MechanismMeta) -@interface SentryMechanismMeta : NSObject +@interface SentryMechanismMeta : NSObject +#if !SDK_V9 + +#endif - (instancetype)init; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMessage.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMessage.h index 59af411..c704d28 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMessage.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryMessage.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -15,7 +17,11 @@ NS_ASSUME_NONNULL_BEGIN * and structured parameters. This can help to group similar messages into the same issue. * @see https://develop.sentry.dev/sdk/event-payloads/message/ */ -@interface SentryMessage : NSObject +@interface SentryMessage : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryNSError.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryNSError.h index c58d542..40620c3 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryNSError.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryNSError.h @@ -6,14 +6,20 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN /** * Sentry representation of an @c NSError to send to Sentry. */ -@interface SentryNSError : NSObject +@interface SentryNSError : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryOptions.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryOptions.h index b1d9ae1..28d51ec 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryOptions.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryOptions.h @@ -156,6 +156,14 @@ NS_SWIFT_NAME(Options) */ @property (nullable, nonatomic, copy) SentryBeforeSendSpanCallback beforeSendSpan NS_SWIFT_SENDABLE; +#if !SWIFT_PACKAGE +/** + * Use this callback to drop or modify a log before the SDK sends it to Sentry. Return @c nil to + * drop the log. + */ +@property (nullable, nonatomic, copy) SentryBeforeSendLogCallback beforeSendLog NS_SWIFT_SENDABLE; +#endif // !SWIFT_PACKAGE + /** * This block can be used to modify the event before it will be serialized and sent. */ @@ -191,10 +199,14 @@ NS_SWIFT_NAME(Options) @property (nullable, nonatomic, copy) SentryOnCrashedLastRunCallback onCrashedLastRun NS_SWIFT_SENDABLE; +#if !SDK_V9 /** * Array of integrations to install. */ -@property (nullable, nonatomic, copy) NSArray *integrations; +@property (nullable, nonatomic, copy) NSArray *integrations DEPRECATED_MSG_ATTRIBUTE( + "Setting `SentryOptions.integrations` is deprecated. Integrations should be enabled or " + "disabled using their respective `SentryOptions.enable*` property."); +#endif // !SDK_V9 /** * Array of default integrations. Will be used if @c integrations is @c nil . @@ -398,6 +410,7 @@ NS_SWIFT_NAME(Options) */ @property (nonatomic, assign) BOOL enableFileIOTracing; +#if !SDK_V9 /** * Indicates whether tracing should be enabled. * @discussion Enabling this sets @c tracesSampleRate to @c 1 if both @c tracesSampleRate and @@ -406,6 +419,7 @@ NS_SWIFT_NAME(Options) */ @property (nonatomic) BOOL enableTracing DEPRECATED_MSG_ATTRIBUTE("Use tracesSampleRate or tracesSampler instead"); +#endif // !SDK_V9 /** * Indicates the percentage of the tracing data that is collected. @@ -530,6 +544,7 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull */ @property (nullable, nonatomic, copy) SentryProfilingConfigurationBlock configureProfiling; +# if !SDK_V9 /** * @warning This is an experimental feature and may still have bugs. * Set to @c YES to run the profiler as early as possible in an app launch, before you would @@ -543,7 +558,9 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @c SentryProfileOptions.startOnAppStart and @c SentryProfileOptions.lifecycle . * @note Profiling is automatically disabled if a thread sanitizer is attached. */ -@property (nonatomic, assign) BOOL enableAppLaunchProfiling; +@property (nonatomic, assign) BOOL enableAppLaunchProfiling DEPRECATED_MSG_ATTRIBUTE( + "This property is deprecated and will be removed in a future version of the SDK. See " + "SentryProfileOptions.startOnAppStart and SentryProfileOptions.lifecycle"); /** * @note Profiling is not supported on watchOS or tvOS. @@ -570,7 +587,9 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @warning This property is deprecated and will be removed in a future version of the SDK. See * @c SentryProfileOptions.sessionSampleRate. */ -@property (nullable, nonatomic, strong) NSNumber *profilesSampleRate; +@property (nullable, nonatomic, strong) NSNumber *profilesSampleRate DEPRECATED_MSG_ATTRIBUTE( + "This property is deprecated and will be removed in a future version of the SDK. See " + "SentryProfileOptions.sessionSampleRate"); /** * @note Profiling is not supported on watchOS or tvOS. @@ -584,7 +603,10 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @warning This property is deprecated and will be removed in a future version of the SDK. See * @c SentryProfileOptions.sessionSampleRate . */ -@property (nullable, nonatomic) SentryTracesSamplerCallback profilesSampler NS_SWIFT_SENDABLE; +@property (nullable, nonatomic) + SentryTracesSamplerCallback profilesSampler NS_SWIFT_SENDABLE DEPRECATED_MSG_ATTRIBUTE( + "This property is deprecated and will be removed in a future version of the SDK. See " + "SentryProfileOptions.sessionSampleRate"); /** * If profiling should be enabled or not. @@ -597,7 +619,8 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @note Profiling is automatically disabled if a thread sanitizer is attached. * @warning This property is deprecated and will be removed in a future version of the SDK. */ -@property (nonatomic, assign, readonly) BOOL isProfilingEnabled; +@property (nonatomic, assign, readonly) BOOL isProfilingEnabled DEPRECATED_MSG_ATTRIBUTE( + "This property is deprecated and will be removed in a future version of the SDK"); /** * @brief Whether to enable the sampling profiler. @@ -611,6 +634,7 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull @property (nonatomic, assign) BOOL enableProfiling DEPRECATED_MSG_ATTRIBUTE( "Use profilesSampleRate or profilesSampler instead. This property will be removed in a future " "version of the SDK"); +# endif // !SDK_V9 #endif // SENTRY_TARGET_PROFILING_SUPPORTED /** @@ -630,6 +654,7 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull #if SENTRY_UIKIT_AVAILABLE +# if !SDK_V9 /** * AppHangTrackingV2 can differentiate between fully-blocking and non-fully blocking app hangs. * fully-blocking app hang is when the main thread is stuck completely, and the app can't render a @@ -649,6 +674,8 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull */ @property (nonatomic, assign) BOOL enableAppHangTrackingV2; +# endif // !SDK_V9 + /** * When enabled the SDK reports non-fully-blocking app hangs. A non-fully-blocking app hang is when * the app appears stuck to the user but can still render a few frames. For more information see @c @@ -799,7 +826,8 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @note User feedback widget is only available for iOS 13 or later. */ @property (nonatomic, copy, nullable) - SentryUserFeedbackConfigurationBlock configureUserFeedback API_AVAILABLE(ios(13.0)); + SentryUserFeedbackConfigurationBlock configureUserFeedback API_AVAILABLE(ios(13.0)) + NS_EXTENSION_UNAVAILABLE("Sentry User Feedback UI cannot be used from app extensions."); #endif // TARGET_OS_IOS && SENTRY_HAS_UIKIT diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryReplayApi.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryReplayApi.h index 1065370..5872c92 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryReplayApi.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryReplayApi.h @@ -52,6 +52,8 @@ NS_ASSUME_NONNULL_BEGIN * This will only work if the debbuger is attached and it will * cause some slow frames. * + * @note This method must be called from the main thread. + * * @warning This is an experimental feature and may still have bugs. * Do not use this is production. */ @@ -67,6 +69,8 @@ NS_ASSUME_NONNULL_BEGIN * * @param opacity The opacity of the overlay. * + * @note This method must be called from the main thread. + * * @warning This is an experimental feature and may still have bugs. * Do not use this is production. */ @@ -75,6 +79,8 @@ NS_ASSUME_NONNULL_BEGIN /** * Removes the overlay that shows replay masking. * + * @note This method must be called from the main thread. + * * @warning This is an experimental feature and may still have bugs. * Do not use this is production. */ diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryRequest.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryRequest.h index 2a0dc30..dcbcea3 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryRequest.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryRequest.h @@ -5,11 +5,16 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN -@interface SentryRequest : NSObject +@interface SentryRequest : NSObject +#if !SDK_V9 + +#endif /** * Optional: HTTP response body size. diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySDK.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySDK.h deleted file mode 100644 index 4259f87..0000000 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySDK.h +++ /dev/null @@ -1,424 +0,0 @@ -#if __has_include() -# import -#elif __has_include() -# import -#else -# import -#endif - -@protocol SentrySpan; - -@class SentryBreadcrumb; -@class SentryEvent; -@class SentryFeedback; -@class SentryFeedbackAPI; -@class SentryId; -@class SentryMetricsAPI; -@class SentryOptions; -@class SentryReplayApi; -@class SentryScope; -@class SentryTransactionContext; -@class SentryUser; -@class SentryUserFeedback; -@class UIView; - -NS_ASSUME_NONNULL_BEGIN - -/** - * The main entry point for the SentrySDK. - * We recommend using @c +[startWithConfigureOptions:] to initialize Sentry. - */ -@interface SentrySDK : NSObject -SENTRY_NO_INIT - -/** - * The current active transaction or span bound to the scope. - */ -@property (nullable, class, nonatomic, readonly) id span; - -/** - * Indicates whether the SentrySDK is enabled. - */ -@property (class, nonatomic, readonly) BOOL isEnabled; - -@property (class, nonatomic, readonly) SentryMetricsAPI *metrics; - -#if SENTRY_TARGET_REPLAY_SUPPORTED -/** - * API to control session replay - */ -@property (class, nonatomic, readonly) SentryReplayApi *replay; -#endif - -/** - * Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to - * set a valid DSN. - * - * @discussion Call this method on the main thread. When calling it from a background thread, the - * SDK starts on the main thread async. - */ -+ (void)startWithOptions:(SentryOptions *)options NS_SWIFT_NAME(start(options:)); - -/** - * Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to - * set a valid DSN. - * - * @discussion Call this method on the main thread. When calling it from a background thread, the - * SDK starts on the main thread async. - */ -+ (void)startWithConfigureOptions:(void (^)(SentryOptions *options))configureOptions - NS_SWIFT_NAME(start(configureOptions:)); - -/** - * Captures a manually created event and sends it to Sentry. - * @param event The event to send to Sentry. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureEvent:(SentryEvent *)event NS_SWIFT_NAME(capture(event:)); - -/** - * Captures a manually created event and sends it to Sentry. Only the data in this scope object will - * be added to the event. The global scope will be ignored. - * @param event The event to send to Sentry. - * @param scope The scope containing event metadata. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureEvent:(SentryEvent *)event - withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(event:scope:)); - -/** - * Captures a manually created event and sends it to Sentry. Maintains the global scope but mutates - * scope data for only this call. - * @param event The event to send to Sentry. - * @param block The block mutating the scope only for this call. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureEvent:(SentryEvent *)event - withScopeBlock:(void (^)(SentryScope *scope))block NS_SWIFT_NAME(capture(event:block:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param name The transaction name. - * @param operation Short code identifying the type of operation the span is measuring. - * @return The created transaction. - */ -+ (id)startTransactionWithName:(NSString *)name - operation:(NSString *)operation - NS_SWIFT_NAME(startTransaction(name:operation:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param name The transaction name. - * @param operation Short code identifying the type of operation the span is measuring. - * @param bindToScope Indicates whether the SDK should bind the new transaction to the scope. - * @return The created transaction. - */ -+ (id)startTransactionWithName:(NSString *)name - operation:(NSString *)operation - bindToScope:(BOOL)bindToScope - NS_SWIFT_NAME(startTransaction(name:operation:bindToScope:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param transactionContext The transaction context. - * @return The created transaction. - */ -+ (id)startTransactionWithContext:(SentryTransactionContext *)transactionContext - NS_SWIFT_NAME(startTransaction(transactionContext:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param transactionContext The transaction context. - * @param bindToScope Indicates whether the SDK should bind the new transaction to the scope. - * @return The created transaction. - */ -+ (id)startTransactionWithContext:(SentryTransactionContext *)transactionContext - bindToScope:(BOOL)bindToScope - NS_SWIFT_NAME(startTransaction(transactionContext:bindToScope:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param transactionContext The transaction context. - * @param bindToScope Indicates whether the SDK should bind the new transaction to the scope. - * @param customSamplingContext Additional information about the sampling context. - * @return The created transaction. - */ -+ (id)startTransactionWithContext:(SentryTransactionContext *)transactionContext - bindToScope:(BOOL)bindToScope - customSamplingContext:(NSDictionary *)customSamplingContext - NS_SWIFT_NAME(startTransaction(transactionContext:bindToScope:customSamplingContext:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param transactionContext The transaction context. - * @param customSamplingContext Additional information about the sampling context. - * @return The created transaction. - */ -+ (id)startTransactionWithContext:(SentryTransactionContext *)transactionContext - customSamplingContext:(NSDictionary *)customSamplingContext - NS_SWIFT_NAME(startTransaction(transactionContext:customSamplingContext:)); - -/** - * Captures an error event and sends it to Sentry. - * @param error The error to send to Sentry. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureError:(NSError *)error NS_SWIFT_NAME(capture(error:)); - -/** - * Captures an error event and sends it to Sentry. Only the data in this scope object will be added - * to the event. The global scope will be ignored. - * @param error The error to send to Sentry. - * @param scope The scope containing event metadata. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureError:(NSError *)error - withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(error:scope:)); - -/** - * Captures an error event and sends it to Sentry. Maintains the global scope but mutates scope data - * for only this call. - * @param error The error to send to Sentry. - * @param block The block mutating the scope only for this call. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureError:(NSError *)error - withScopeBlock:(void (^)(SentryScope *scope))block NS_SWIFT_NAME(capture(error:block:)); - -/** - * Captures an exception event and sends it to Sentry. - * @param exception The exception to send to Sentry. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureException:(NSException *)exception NS_SWIFT_NAME(capture(exception:)); - -/** - * Captures an exception event and sends it to Sentry. Only the data in this scope object will be - * added to the event. The global scope will be ignored. - * @param exception The exception to send to Sentry. - * @param scope The scope containing event metadata. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureException:(NSException *)exception - withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(exception:scope:)); - -/** - * Captures an exception event and sends it to Sentry. Maintains the global scope but mutates scope - * data for only this call. - * @param exception The exception to send to Sentry. - * @param block The block mutating the scope only for this call. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureException:(NSException *)exception - withScopeBlock:(void (^)(SentryScope *scope))block - NS_SWIFT_NAME(capture(exception:block:)); - -/** - * Captures a message event and sends it to Sentry. - * @param message The message to send to Sentry. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureMessage:(NSString *)message NS_SWIFT_NAME(capture(message:)); - -/** - * Captures a message event and sends it to Sentry. Only the data in this scope object will be added - * to the event. The global scope will be ignored. - * @param message The message to send to Sentry. - * @param scope The scope containing event metadata. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureMessage:(NSString *)message - withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(message:scope:)); - -/** - * Captures a message event and sends it to Sentry. Maintains the global scope but mutates scope - * data for only this call. - * @param message The message to send to Sentry. - * @param block The block mutating the scope only for this call. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureMessage:(NSString *)message - withScopeBlock:(void (^)(SentryScope *scope))block - NS_SWIFT_NAME(capture(message:block:)); - -#if !SDK_V9 -/** - * Captures user feedback that was manually gathered and sends it to Sentry. - * @param userFeedback The user feedback to send to Sentry. - * @deprecated Use @c SentrySDK.captureFeedback or use or configure our new managed UX with - * @c SentryOptions.configureUserFeedback . - */ -+ (void)captureUserFeedback:(SentryUserFeedback *)userFeedback - NS_SWIFT_NAME(capture(userFeedback:)) DEPRECATED_MSG_ATTRIBUTE( - "Use SentrySDK.captureFeedback or use or configure our new managed UX with " - "SentryOptions.configureUserFeedback."); -#endif // !SDK_V9 - -/** - * Captures user feedback that was manually gathered and sends it to Sentry. - * @warning This is an experimental feature and may still have bugs. - * @param feedback The feedback to send to Sentry. - * @note If you'd prefer not to have to build the UI required to gather the feedback from the user, - * see @c SentryOptions.configureUserFeedback to customize a fully managed integration. See - * https://docs.sentry.io/platforms/apple/user-feedback/ for more information. - */ -+ (void)captureFeedback:(SentryFeedback *)feedback NS_SWIFT_NAME(capture(feedback:)); - -#if TARGET_OS_IOS && SENTRY_HAS_UIKIT - -@property (nonatomic, class, readonly) SentryFeedbackAPI *feedback API_AVAILABLE(ios(13.0)); - -#endif // TARGET_OS_IOS && SENTRY_HAS_UIKIT - -/** - * Adds a Breadcrumb to the current Scope of the current Hub. If the total number of breadcrumbs - * exceeds the @c SentryOptions.maxBreadcrumbs the SDK removes the oldest breadcrumb. - * @param crumb The Breadcrumb to add to the current Scope of the current Hub. - */ -+ (void)addBreadcrumb:(SentryBreadcrumb *)crumb NS_SWIFT_NAME(addBreadcrumb(_:)); - -/** - * Use this method to modify the current Scope of the current Hub. The SDK uses the Scope to attach - * contextual data to events. - * @param callback The callback for configuring the current Scope of the current Hub. - */ -+ (void)configureScope:(void (^)(SentryScope *scope))callback; - -/** - * Checks if the last program execution terminated with a crash. - */ -@property (nonatomic, class, readonly) BOOL crashedLastRun; - -/** - * Checks if the SDK detected a start-up crash during SDK initialization. - * - * @note The SDK init waits synchronously for up to 5 seconds to flush out events if the app crashes - * within 2 seconds after the SDK init. - * - * @return @c YES if the SDK detected a start-up crash and @c NO if not. - */ -@property (nonatomic, class, readonly) BOOL detectedStartUpCrash; - -/** - * Set user to the current Scope of the current Hub. - * @param user The user to set to the current Scope. - * - * @note You must start the SDK before calling this method, otherwise it doesn't set the user. - */ -+ (void)setUser:(nullable SentryUser *)user; - -/** - * Starts a new SentrySession. If there's a running @c SentrySession, it ends it before starting the - * new one. You can use this method in combination with endSession to manually track - * @c SentrySessions. The SDK uses SentrySession to inform Sentry about release and project - * associated project health. - */ -+ (void)startSession; - -/** - * Ends the current @c SentrySession. You can use this method in combination with @c startSession to - * manually track @c SentrySessions. The SDK uses SentrySession to inform Sentry about release and - * project associated project health. - */ -+ (void)endSession; - -/** - * This forces a crash, useful to test the @c SentryCrash integration. - * - * @note The SDK can't report a crash when a debugger is attached. Your application needs to run - * without a debugger attached to capture the crash and send it to Sentry the next time you launch - * your application. - */ -+ (void)crash; - -/** - * Reports to the ongoing UIViewController transaction - * that the screen contents are fully loaded and displayed, - * which will create a new span. - * - * For more information see our documentation: - * https://docs.sentry.io/platforms/cocoa/performance/instrumentation/automatic-instrumentation/#time-to-full-display - */ -+ (void)reportFullyDisplayed; - -/** - * Pauses sending detected app hangs to Sentry. - * - * @discussion This method doesn't close the detection of app hangs. Instead, the app hang detection - * will ignore detected app hangs until you call @c resumeAppHangTracking. - */ -+ (void)pauseAppHangTracking; - -/** - * Resumes sending detected app hangs to Sentry. - */ -+ (void)resumeAppHangTracking; - -/** - * Waits synchronously for the SDK to flush out all queued and cached items for up to the specified - * timeout in seconds. If there is no internet connection, the function returns immediately. The SDK - * doesn't dispose the client or the hub. - * @param timeout The time to wait for the SDK to complete the flush. - */ -+ (void)flush:(NSTimeInterval)timeout NS_SWIFT_NAME(flush(timeout:)); - -/** - * Closes the SDK, uninstalls all the integrations, and calls flush with - * @c SentryOptions.shutdownTimeInterval . - */ -+ (void)close; - -#if SENTRY_TARGET_PROFILING_SUPPORTED -/** - * Start a new continuous profiling session if one is not already running. - * @warning Continuous profiling mode is experimental and may still contain bugs. - * @note Unlike transaction-based profiling, continuous profiling does not take into account - * @c SentryOptions.profilesSampleRate or @c SentryOptions.profilesSampler . If either of those - * options are set, this method does nothing. - * @note Taking into account the above note, if @c SentryOptions.configureProfiling is not set, - * calls to this method will always start a profile if one is not already running. This includes app - * launch profiles configured with @c SentryOptions.enableAppLaunchProfiling . - * @note If neither @c SentryOptions.profilesSampleRate nor @c SentryOptions.profilesSampler are - * set, and @c SentryOptions.configureProfiling is set, this method does nothing if the profiling - * session is not sampled with respect to @c SentryOptions.profileSessionSampleRate , or if it is - * sampled but the profiler is already running. - * @note If neither @c SentryOptions.profilesSampleRate nor @c SentryOptions.profilesSampler are - * set, and @c SentryOptions.configureProfiling is set, this method does nothing if - * @c SentryOptions.profileLifecycle is set to @c trace . In this scenario, the profiler is - * automatically started and stopped depending on whether there is an active sampled span, so it is - * not permitted to manually start profiling. - * @note Profiling is automatically disabled if a thread sanitizer is attached. - * @seealso https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling - */ -+ (void)startProfiler; - -/** - * Stop a continuous profiling session if there is one ongoing. - * @warning Continuous profiling mode is experimental and may still contain bugs. - * @note Does nothing if @c SentryOptions.profileLifecycle is set to @c trace . - * @note Does not immediately stop the profiler. Profiling data is uploaded at regular timed - * intervals; when the current interval completes, then the profiler stops and the data gathered - * during that last interval is uploaded. - * @note If a new call to @c startProfiler that would start the profiler is made before the last - * interval completes, the profiler will continue running until another call to stop is made. - * @note Profiling is automatically disabled if a thread sanitizer is attached. - * @seealso https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling - */ -+ (void)stopProfiler; -#endif // SENTRY_TARGET_PROFILING_SUPPORTED - -@end - -NS_ASSUME_NONNULL_END diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryScope.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryScope.h index d353115..e29fc2c 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryScope.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryScope.h @@ -5,7 +5,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif // SDK_V9 #import SENTRY_HEADER(SentrySpanProtocol) @class SentryAttachment; @@ -22,7 +24,10 @@ NS_ASSUME_NONNULL_BEGIN * https://docs.sentry.io/platforms/apple/enriching-events/scopes/#whats-a-scope-whats-a-hub */ NS_SWIFT_NAME(Scope) -@interface SentryScope : NSObject +@interface SentryScope : NSObject +#if !SDK_V9 + +#endif // !SDK_V9 /** * Returns current Span or Transaction. @@ -115,10 +120,12 @@ NS_SWIFT_NAME(Scope) */ - (void)clearBreadcrumbs; +#if !SDK_V9 /** * Serializes the Scope to JSON */ - (NSDictionary *)serialize; +#endif // !SDK_V9 /** * Sets context values which will overwrite SentryEvent.context when event is @@ -166,11 +173,6 @@ NS_SWIFT_NAME(Scope) "now considered unsafe and deprecated. Use `span` instead."); #endif // !SDK_V9 -/** - * Returns the current span. - */ -- (id _Nullable)span; - @end NS_ASSUME_NONNULL_END diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySpanContext.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySpanContext.h index 5b65e96..89c7fd3 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySpanContext.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentrySpanContext.h @@ -6,7 +6,9 @@ # import #endif #import SENTRY_HEADER(SentrySampleDecision) -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif #import SENTRY_HEADER(SentrySpanStatus) NS_ASSUME_NONNULL_BEGIN @@ -17,7 +19,11 @@ NS_ASSUME_NONNULL_BEGIN static NSString const *SENTRY_TRACE_TYPE = @"trace"; NS_SWIFT_NAME(SpanContext) -@interface SentrySpanContext : NSObject +@interface SentrySpanContext : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryStacktrace.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryStacktrace.h index 5c8d11f..0f6b5d4 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryStacktrace.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryStacktrace.h @@ -6,13 +6,19 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @class SentryFrame; -@interface SentryStacktrace : NSObject +@interface SentryStacktrace : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryThread.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryThread.h index cbf9422..45e1b4d 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryThread.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryThread.h @@ -5,13 +5,19 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @class SentryStacktrace; -@interface SentryThread : NSObject +@interface SentryThread : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryTraceContext.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryTraceContext.h index 7904404..b54d08e 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryTraceContext.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryTraceContext.h @@ -1,7 +1,12 @@ -#if __has_include() -# import +#if __has_include() +# import +#elif __has_include() +# import #else -# import "SentrySerializable.h" +# import +#endif +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) #endif NS_ASSUME_NONNULL_BEGIN @@ -14,7 +19,10 @@ NS_ASSUME_NONNULL_BEGIN @class SentryUser; NS_SWIFT_NAME(TraceContext) -@interface SentryTraceContext : NSObject +@interface SentryTraceContext : NSObject +#if !SDK_V9 + +#endif /** * UUID V4 encoded as a hexadecimal sequence with no dashes (e.g. 771a43a4192642f0b136d5159a501700) @@ -45,7 +53,9 @@ NS_SWIFT_NAME(TraceContext) /** * A subset of the scope's user context. */ +#if !SDK_V9 @property (nullable, nonatomic, readonly) NSString *userSegment; +#endif /** * Serialized sample rate used for this trace. @@ -75,7 +85,9 @@ NS_SWIFT_NAME(TraceContext) releaseName:(nullable NSString *)releaseName environment:(nullable NSString *)environment transaction:(nullable NSString *)transaction +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif sampleRate:(nullable NSString *)sampleRate sampled:(nullable NSString *)sampled replayId:(nullable NSString *)replayId; @@ -88,7 +100,9 @@ NS_SWIFT_NAME(TraceContext) releaseName:(nullable NSString *)releaseName environment:(nullable NSString *)environment transaction:(nullable NSString *)transaction +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif sampleRate:(nullable NSString *)sampleRate sampleRand:(nullable NSString *)sampleRand sampled:(nullable NSString *)sampled @@ -111,16 +125,29 @@ NS_SWIFT_NAME(TraceContext) scope:(nullable SentryScope *)scope options:(SentryOptions *)options; +#if SDK_V9 /** - * Initializes a SentryTraceContext with data from a traceID, options and userSegment. + * Initializes a SentryTraceContext with data from a traceId, options and replayId. + * + * @param traceId The current tracer. + * @param options The current active options. + * @param replayId The current session replay. + */ +#else +/** + * Initializes a SentryTraceContext with data from a traceId, options, userSegment and replayId. * * @param traceId The current tracer. * @param options The current active options. * @param userSegment You can retrieve this usually from the `scope.userObject.segment`. + * @param replayId The current session replay. */ +#endif - (instancetype)initWithTraceId:(SentryId *)traceId options:(SentryOptions *)options +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif replayId:(nullable NSString *)replayId; /** diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryUser.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryUser.h index 685e786..b1b6fee 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryUser.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryUser.h @@ -5,14 +5,21 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif // !SDK_V9 NS_ASSUME_NONNULL_BEGIN @class SentryGeo; NS_SWIFT_NAME(User) -@interface SentryUser : NSObject +@interface SentryUser : NSObject +#if SDK_V9 + +#else + +#endif // SDK_V9 /** * Optional: Id of the user @@ -34,12 +41,14 @@ NS_SWIFT_NAME(User) */ @property (atomic, copy) NSString *_Nullable ipAddress; +#if !SDK_V9 /** * The user segment, for apps that divide users in user segments. * @deprecated This field will be removed in the next major version. */ @property (atomic, copy) NSString *_Nullable segment DEPRECATED_MSG_ATTRIBUTE( "This field is deprecated and will be removed in the next major update."); +#endif // !SDK_V9 /** * Optional: Human readable name diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryWithoutUIKit.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryWithoutUIKit.h index 8f419de..508d9b0 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryWithoutUIKit.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Headers/SentryWithoutUIKit.h @@ -35,7 +35,6 @@ FOUNDATION_EXPORT const unsigned char SentryVersionString[]; # import # import # import -# import # import # import # import diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Info.plist b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Info.plist index 8e46e2b..5f42893 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Info.plist and b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Info.plist differ diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.abi.json b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.abi.json index 9c52712..96f4812 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.abi.json +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.abi.json @@ -746,6 +746,106 @@ "name": "SentryRRWebEvent", "printedName": "SentryRRWebEvent", "children": [ + { + "kind": "Var", + "name": "data", + "printedName": "data", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryRRWebEvent(py)data", + "mangledName": "$s6Sentry0A10RRWebEventC4dataSDySSypGSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryRRWebEvent(im)data", + "mangledName": "$s6Sentry0A10RRWebEventC4dataSDySSypGSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] + }, { "kind": "Function", "name": "serialize", @@ -1552,6 +1652,16 @@ } ] }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, { "kind": "Import", "name": "Foundation", @@ -2233,8 +2343,7 @@ "objc_name": "SentryEventDecodable", "declAttributes": [ "AccessControl", - "ObjC", - "RawDocComment" + "ObjC" ], "superclassUsr": "c:objc(cs)SentryEvent", "superclassNames": [ @@ -2846,6 +2955,505 @@ } ] }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryLogMessage", + "printedName": "SentryLogMessage", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(stringLiteral:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A10LogMessageV13stringLiteralACSS_tcfc", + "mangledName": "$s6Sentry0A10LogMessageV13stringLiteralACSS_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(stringInterpolation:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "StringInterpolation", + "printedName": "Sentry.SentryLogMessage.StringInterpolation", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A10LogMessageV19stringInterpolationA2C06StringE0V_tcfc", + "mangledName": "$s6Sentry0A10LogMessageV19stringInterpolationA2C06StringE0V_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "TypeDecl", + "name": "StringInterpolation", + "printedName": "StringInterpolation", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(literalCapacity:interpolationCount:)", + "children": [ + { + "kind": "TypeNominal", + "name": "StringInterpolation", + "printedName": "Sentry.SentryLogMessage.StringInterpolation", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV15literalCapacity18interpolationCountAESi_Sitcfc", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV15literalCapacity18interpolationCountAESi_Sitcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "appendLiteral", + "printedName": "appendLiteral(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV13appendLiteralyySSF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV13appendLiteralyySSF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.String", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySSyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySSyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.Bool", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySbyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySbyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.Int", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySiyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySiyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.Double", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySdyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySdyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.Float", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySfyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySfyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> τ_0_0", + "children": [ + { + "kind": "TypeNominal", + "name": "GenericTypeParam", + "printedName": "τ_0_0" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yyxyXAs06CustomD11ConvertibleRzlF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yyxyXAs06CustomD11ConvertibleRzlF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Swift.CustomStringConvertible>", + "sugared_genericSig": "", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + } + ], + "declKind": "Struct", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "StringInterpolationProtocol", + "printedName": "StringInterpolationProtocol", + "children": [ + { + "kind": "TypeWitness", + "name": "StringLiteralType", + "printedName": "StringLiteralType", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ], + "usr": "s:s27StringInterpolationProtocolP", + "mangledName": "$ss27StringInterpolationProtocolP" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:6Sentry0A10LogMessageV", + "mangledName": "$s6Sentry0A10LogMessageV", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "ExpressibleByStringInterpolation", + "printedName": "ExpressibleByStringInterpolation", + "children": [ + { + "kind": "TypeWitness", + "name": "StringInterpolation", + "printedName": "StringInterpolation", + "children": [ + { + "kind": "TypeNominal", + "name": "StringInterpolation", + "printedName": "Sentry.SentryLogMessage.StringInterpolation", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV" + } + ] + } + ], + "usr": "s:s32ExpressibleByStringInterpolationP", + "mangledName": "$ss32ExpressibleByStringInterpolationP" + }, + { + "kind": "Conformance", + "name": "ExpressibleByStringLiteral", + "printedName": "ExpressibleByStringLiteral", + "children": [ + { + "kind": "TypeWitness", + "name": "StringLiteralType", + "printedName": "StringLiteralType", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ], + "usr": "s:s26ExpressibleByStringLiteralP", + "mangledName": "$ss26ExpressibleByStringLiteralP" + }, + { + "kind": "Conformance", + "name": "ExpressibleByExtendedGraphemeClusterLiteral", + "printedName": "ExpressibleByExtendedGraphemeClusterLiteral", + "children": [ + { + "kind": "TypeWitness", + "name": "ExtendedGraphemeClusterLiteralType", + "printedName": "ExtendedGraphemeClusterLiteralType", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ], + "usr": "s:s43ExpressibleByExtendedGraphemeClusterLiteralP", + "mangledName": "$ss43ExpressibleByExtendedGraphemeClusterLiteralP" + }, + { + "kind": "Conformance", + "name": "ExpressibleByUnicodeScalarLiteral", + "printedName": "ExpressibleByUnicodeScalarLiteral", + "children": [ + { + "kind": "TypeWitness", + "name": "UnicodeScalarLiteralType", + "printedName": "UnicodeScalarLiteralType", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ], + "usr": "s:s33ExpressibleByUnicodeScalarLiteralP", + "mangledName": "$ss33ExpressibleByUnicodeScalarLiteralP" + } + ] + }, { "kind": "Import", "name": "_SentryPrivate", @@ -2914,89 +3522,416 @@ "declKind": "Import", "moduleName": "Sentry" }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "TypeDecl", - "name": "SentryReplayRecording", - "printedName": "SentryReplayRecording", + "name": "SentryLog", + "printedName": "SentryLog", "children": [ { - "kind": "Constructor", - "name": "init", - "printedName": "init(segmentId:video:extraEvents:)", + "kind": "Var", + "name": "timestamp", + "printedName": "timestamp", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayRecording", - "printedName": "Sentry.SentryReplayRecording", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)timestamp", + "mangledName": "$s6Sentry0A3LogC9timestamp10Foundation4DateVvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)timestamp", + "mangledName": "$s6Sentry0A3LogC9timestamp10Foundation4DateVvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setTimestamp:", + "mangledName": "$s6Sentry0A3LogC9timestamp10Foundation4DateVvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC9timestamp10Foundation4DateVvM", + "mangledName": "$s6Sentry0A3LogC9timestamp10Foundation4DateVvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "traceId", + "printedName": "traceId", + "children": [ { "kind": "TypeNominal", - "name": "SentryVideoInfo", - "printedName": "Sentry.SentryVideoInfo", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)traceId", + "mangledName": "$s6Sentry0A3LogC7traceIdAA0aD0Cvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)traceId", + "mangledName": "$s6Sentry0A3LogC7traceIdAA0aD0Cvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[Sentry.SentryRRWebEventProtocol]", + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", "children": [ { "kind": "TypeNominal", - "name": "SentryRRWebEventProtocol", - "printedName": "Sentry.SentryRRWebEventProtocol", - "usr": "c:@M@Sentry@objc(pl)SentryRRWebEvent" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" } ], - "usr": "s:Sa" + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setTraceId:", + "mangledName": "$s6Sentry0A3LogC7traceIdAA0aD0Cvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC7traceIdAA0aD0CvM", + "mangledName": "$s6Sentry0A3LogC7traceIdAA0aD0CvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "level", + "printedName": "level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)initWithSegmentId:video:extraEvents:", - "mangledName": "$s6Sentry0A15ReplayRecordingC9segmentId5video11extraEventsACSi_AA0A9VideoInfoCSayAA0A18RRWebEventProtocol_pGtcfc", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)level", + "mangledName": "$s6Sentry0A3LogC5levelAC5LevelOvp", "moduleName": "Sentry", "declAttributes": [ - "Convenience", + "Final", + "HasStorage", "AccessControl", + "RawDocComment", "ObjC" ], - "spi_group_names": [ - "Private" + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)level", + "mangledName": "$s6Sentry0A3LogC5levelAC5LevelOvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setLevel:", + "mangledName": "$s6Sentry0A3LogC5levelAC5LevelOvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC5levelAC5LevelOvM", + "mangledName": "$s6Sentry0A3LogC5levelAC5LevelOvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "body", + "printedName": "body", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } ], - "init_kind": "Convenience" + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)body", + "mangledName": "$s6Sentry0A3LogC4bodySSvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)body", + "mangledName": "$s6Sentry0A3LogC4bodySSvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setBody:", + "mangledName": "$s6Sentry0A3LogC4bodySSvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC4bodySSvM", + "mangledName": "$s6Sentry0A3LogC4bodySSvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] }, { - "kind": "Function", - "name": "headerForReplayRecording", - "printedName": "headerForReplayRecording()", + "kind": "Var", + "name": "attributes", + "printedName": "attributes", "children": [ { "kind": "TypeNominal", "name": "Dictionary", - "printedName": "[Swift.String : Any]", + "printedName": "[Swift.String : Sentry.SentryLog.Attribute]", "children": [ { "kind": "TypeNominal", @@ -3006,40 +3941,36 @@ }, { "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" } ], "usr": "s:SD" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)headerForReplayRecording", - "mangledName": "$s6Sentry0A15ReplayRecordingC09headerForbC0SDySSypGyF", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)attributes", + "mangledName": "$s6Sentry0A3LogC10attributesSDySSAC9AttributeCGvp", "moduleName": "Sentry", "declAttributes": [ + "Final", + "HasStorage", "AccessControl", + "RawDocComment", "ObjC" ], - "spi_group_names": [ - "Private" - ], - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "serialize", - "printedName": "serialize()", - "children": [ + "hasStorage": true, + "accessors": [ { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[[Swift.String : Any]]", + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", "name": "Dictionary", - "printedName": "[Swift.String : Any]", + "printedName": "[Swift.String : Sentry.SentryLog.Attribute]", "children": [ { "kind": "TypeNominal", @@ -3049,242 +3980,278 @@ }, { "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" } ], "usr": "s:SD" } ], - "usr": "s:Sa" + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)attributes", + "mangledName": "$s6Sentry0A3LogC10attributesSDySSAC9AttributeCGvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Sentry.SentryLog.Attribute]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setAttributes:", + "mangledName": "$s6Sentry0A3LogC10attributesSDySSAC9AttributeCGvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC10attributesSDySSAC9AttributeCGvM", + "mangledName": "$s6Sentry0A3LogC10attributesSDySSAC9AttributeCGvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)serialize", - "mangledName": "$s6Sentry0A15ReplayRecordingC9serializeSaySDySSypGGyF", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "funcSelfKind": "NonMutating" + ] }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Var", + "name": "severityNumber", + "printedName": "severityNumber", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayRecording", - "printedName": "Sentry.SentryReplayRecording", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" + "name": "Optional", + "printedName": "Foundation.NSNumber?", + "children": [ + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + } + ], + "usr": "s:Sq" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)init", - "mangledName": "$s6Sentry0A15ReplayRecordingCACycfc", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)severityNumber", + "mangledName": "$s6Sentry0A3LogC14severityNumberSo8NSNumberCSgvp", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", "declAttributes": [ - "Dynamic", - "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording", - "mangledName": "$s6Sentry0A15ReplayRecordingC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "hasMissingDesignatedInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNumber?", + "children": [ + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)severityNumber", + "mangledName": "$s6Sentry0A3LogC14severityNumberSo8NSNumberCSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNumber?", + "children": [ + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setSeverityNumber:", + "mangledName": "$s6Sentry0A3LogC14severityNumberSo8NSNumberCSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC14severityNumberSo8NSNumberCSgvM", + "mangledName": "$s6Sentry0A3LogC14severityNumberSo8NSNumberCSgvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] }, { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentrySessionReplayDelegate", - "printedName": "SentrySessionReplayDelegate", - "children": [ - { - "kind": "Function", - "name": "sessionReplayShouldCaptureReplayForError", - "printedName": "sessionReplayShouldCaptureReplayForError()", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "SentryLog", + "printedName": "Sentry.SentryLog", + "usr": "c:@M@Sentry@objc(cs)SentryLog" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayShouldCaptureReplayForError", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionc13ShouldCaptureC8ForErrorSbyF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)init", + "mangledName": "$s6Sentry0A3LogCACycfc", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Dynamic", + "ObjC", + "Override" ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" + "init_kind": "Designated" }, { - "kind": "Function", - "name": "sessionReplayNewSegment", - "printedName": "sessionReplayNewSegment(replayEvent:replayRecording:videoUrl:)", + "kind": "Constructor", + "name": "init", + "printedName": "init(from:)", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryReplayEvent", - "printedName": "Sentry.SentryReplayEvent", - "usr": "c:@M@Sentry@objc(cs)SentryReplayEvent" - }, - { - "kind": "TypeNominal", - "name": "SentryReplayRecording", - "printedName": "Sentry.SentryReplayRecording", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" + "name": "SentryLog", + "printedName": "Sentry.SentryLog", + "usr": "c:@M@Sentry@objc(cs)SentryLog" }, { "kind": "TypeNominal", - "name": "URL", - "printedName": "Foundation.URL", - "usr": "s:10Foundation3URLV" + "name": "Decoder", + "printedName": "Swift.Decoder", + "usr": "s:s7DecoderP" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayNewSegmentWithReplayEvent:replayRecording:videoUrl:", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionC10NewSegment11replayEvent0H9Recording8videoUrlyAA0acI0C_AA0acJ0C10Foundation3URLVtF", + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC4fromACs7Decoder_p_tKcfc", + "mangledName": "$s6Sentry0A3LogC4fromACs7Decoder_p_tKcfc", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, "declAttributes": [ - "ObjC" + "Convenience", + "AccessControl", + "SPIAccessControl" ], + "isFromExtension": true, "spi_group_names": [ "Private" ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" + "throwing": true, + "init_kind": "Convenience" }, { "kind": "Function", - "name": "sessionReplayStarted", - "printedName": "sessionReplayStarted(replayId:)", + "name": "encode", + "printedName": "encode(to:)", "children": [ { "kind": "TypeNominal", @@ -3293,528 +4260,1008 @@ }, { "kind": "TypeNominal", - "name": "SentryId", - "printedName": "Sentry.SentryId", - "usr": "c:@M@Sentry@objc(cs)SentryId" + "name": "Encoder", + "printedName": "Swift.Encoder", + "usr": "s:s7EncoderP" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayStartedWithReplayId:", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionC7Started8replayIdyAA0aH0C_tF", + "usr": "s:6Sentry0A3LogC6encode2toys7Encoder_p_tKF", + "mangledName": "$s6Sentry0A3LogC6encode2toys7Encoder_p_tKF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, "declAttributes": [ - "ObjC" + "Final", + "AccessControl", + "SPIAccessControl" ], + "isFromExtension": true, "spi_group_names": [ "Private" ], - "reqNewWitnessTableEntry": true, + "throwing": true, "funcSelfKind": "NonMutating" }, { - "kind": "Function", - "name": "breadcrumbsForSessionReplay", - "printedName": "breadcrumbsForSessionReplay()", + "kind": "TypeDecl", + "name": "Level", + "printedName": "Level", "children": [ { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[Sentry.Breadcrumb]", + "kind": "Var", + "name": "trace", + "printedName": "trace", "children": [ { - "kind": "TypeNominal", - "name": "Breadcrumb", - "printedName": "Sentry.Breadcrumb", - "usr": "c:objc(cs)SentryBreadcrumb" + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] } ], - "usr": "s:Sa" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)breadcrumbsForSessionReplay", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP014breadcrumbsForbC0SaySo0A10BreadcrumbCGyF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "currentScreenNameForSessionReplay", - "printedName": "currentScreenNameForSessionReplay()", - "children": [ + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO5traceyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO5traceyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 0 + }, { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "Swift.String?", + "kind": "Var", + "name": "debug", + "printedName": "debug", "children": [ { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] } ], - "usr": "s:Sq" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)currentScreenNameForSessionReplay", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP020currentScreenNameForbC0SSSgyF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - } - ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 : ObjectiveC.NSObjectProtocol>", - "sugared_genericSig": "", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ] - }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentrySDKLogSupport", - "printedName": "SentrySDKLogSupport", - "children": [ - { - "kind": "Function", - "name": "configure", - "printedName": "configure(_:diagnosticLevel:)", - "children": [ + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO5debugyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO5debugyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 1 + }, { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "kind": "Var", + "name": "info", + "printedName": "info", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO4infoyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO4infoyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 2 }, { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "kind": "Var", + "name": "warn", + "printedName": "warn", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO4warnyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO4warnyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 3 }, { - "kind": "TypeNominal", - "name": "SentryLevel", - "printedName": "Sentry.SentryLevel", - "usr": "c:@M@Sentry@E@SentryLevel" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport(cm)configure:diagnosticLevel:", - "mangledName": "$s6Sentry0A13SDKLogSupportC9configure_15diagnosticLevelySb_AA0aF0OtFZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "Final", - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "funcSelfKind": "NonMutating" - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init()", - "children": [ + "kind": "Var", + "name": "error", + "printedName": "error", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO5erroryA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO5erroryA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 4 + }, { - "kind": "TypeNominal", - "name": "SentrySDKLogSupport", - "printedName": "Sentry.SentrySDKLogSupport", - "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport" - } - ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport(im)init", - "mangledName": "$s6Sentry0A13SDKLogSupportCACycfc", - "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", - "declAttributes": [ - "Dynamic", - "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport", - "mangledName": "$s6Sentry0A13SDKLogSupportC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC", - "RawDocComment" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" - }, - { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, - { - "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryVideoInfo", - "printedName": "SentryVideoInfo", - "children": [ - { - "kind": "Var", - "name": "path", - "printedName": "path", - "children": [ + "kind": "Var", + "name": "fatal", + "printedName": "fatal", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO5fatalyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO5fatalyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 5 + }, { - "kind": "TypeNominal", - "name": "URL", - "printedName": "Foundation.URL", - "usr": "s:10Foundation3URLV" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)path", - "mangledName": "$s6Sentry0A9VideoInfoC4path10Foundation3URLVvp", - "moduleName": "Sentry", - "declAttributes": [ - "Final", - "HasStorage", - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "kind": "Constructor", + "name": "init", + "printedName": "init(value:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC5LevelO5valueAESS_tKcfc", + "mangledName": "$s6Sentry0A3LogC5LevelO5valueAESS_tKcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "init_kind": "Designated" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "Var", + "name": "value", + "printedName": "value", "children": [ { "kind": "TypeNominal", - "name": "URL", - "printedName": "Foundation.URL", - "usr": "s:10Foundation3URLV" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)path", - "mangledName": "$s6Sentry0A9VideoInfoC4path10Foundation3URLVvg", + "declKind": "Var", + "usr": "s:6Sentry0A3LogC5LevelO5valueSSvp", + "mangledName": "$s6Sentry0A3LogC5LevelO5valueSSvp", "moduleName": "Sentry", - "implicit": true, "declAttributes": [ - "Final", - "ObjC" + "AccessControl", + "RawDocComment" ], - "spi_group_names": [ - "Private" + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC5LevelO5valueSSvg", + "mangledName": "$s6Sentry0A3LogC5LevelO5valueSSvg", + "moduleName": "Sentry", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "toSeverityNumber", + "printedName": "toSeverityNumber()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } ], - "accessorKind": "get" - } - ] - }, - { - "kind": "Var", - "name": "start", - "printedName": "start", - "children": [ + "declKind": "Func", + "usr": "s:6Sentry0A3LogC5LevelO16toSeverityNumberSiyF", + "mangledName": "$s6Sentry0A3LogC5LevelO16toSeverityNumberSiyF", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)start", - "mangledName": "$s6Sentry0A9VideoInfoC5start10Foundation4DateVvp", - "moduleName": "Sentry", - "declAttributes": [ - "Final", - "HasStorage", - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.SentryLog.Level?", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC5LevelO8rawValueAESgSi_tcfc", + "mangledName": "$s6Sentry0A3LogC5LevelO8rawValueAESgSi_tcfc", + "moduleName": "Sentry", + "implicit": true, + "init_kind": "Designated" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", "children": [ { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)start", - "mangledName": "$s6Sentry0A9VideoInfoC5start10Foundation4DateVvg", + "declKind": "Var", + "usr": "s:6Sentry0A3LogC5LevelO8rawValueSivp", + "mangledName": "$s6Sentry0A3LogC5LevelO8rawValueSivp", "moduleName": "Sentry", "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC5LevelO8rawValueSivg", + "mangledName": "$s6Sentry0A3LogC5LevelO8rawValueSivg", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Decoder", + "printedName": "Swift.Decoder", + "usr": "s:s7DecoderP" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC5LevelO4fromAEs7Decoder_p_tKcfc", + "mangledName": "$s6Sentry0A3LogC5LevelO4fromAEs7Decoder_p_tKcfc", + "moduleName": "Sentry", "declAttributes": [ - "Final", - "ObjC" + "AccessControl", + "SPIAccessControl" ], + "isFromExtension": true, "spi_group_names": [ "Private" ], - "accessorKind": "get" - } - ] - }, - { - "kind": "Var", - "name": "end", - "printedName": "end", - "children": [ - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)end", - "mangledName": "$s6Sentry0A9VideoInfoC3end10Foundation4DateVvp", - "moduleName": "Sentry", - "declAttributes": [ - "Final", - "HasStorage", - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "throwing": true, + "init_kind": "Designated" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "Function", + "name": "encode", + "printedName": "encode(to:)", "children": [ { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Encoder", + "printedName": "Swift.Encoder", + "usr": "s:s7EncoderP" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)end", - "mangledName": "$s6Sentry0A9VideoInfoC3end10Foundation4DateVvg", + "declKind": "Func", + "usr": "s:6Sentry0A3LogC5LevelO6encode2toys7Encoder_p_tKF", + "mangledName": "$s6Sentry0A3LogC5LevelO6encode2toys7Encoder_p_tKF", "moduleName": "Sentry", - "implicit": true, "declAttributes": [ - "Final", - "ObjC" + "AccessControl", + "SPIAccessControl" ], + "isFromExtension": true, "spi_group_names": [ "Private" ], - "accessorKind": "get" - } - ] - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init()", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryVideoInfo", - "printedName": "Sentry.SentryVideoInfo", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + "throwing": true, + "funcSelfKind": "NonMutating" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)init", - "mangledName": "$s6Sentry0A9VideoInfoCACycfc", + "declKind": "Enum", + "usr": "s:6Sentry0A3LogC5LevelO", + "mangledName": "$s6Sentry0A3LogC5LevelO", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", + "objc_name": "SentryStructuredLogLevel", "declAttributes": [ - "Dynamic", + "AccessControl", "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" + "RawDocComment" ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo", - "mangledName": "$s6Sentry0A9VideoInfoC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" + "isFromExtension": true, + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + }, + { + "kind": "Conformance", + "name": "Decodable", + "printedName": "Decodable", + "usr": "s:Se", + "mangledName": "$sSe" + }, + { + "kind": "Conformance", + "name": "Encodable", + "printedName": "Encodable", + "usr": "s:SE", + "mangledName": "$sSE" + } + ] + }, + { + "kind": "TypeDecl", + "name": "Attribute", + "printedName": "Attribute", + "children": [ + { + "kind": "Var", + "name": "type", + "printedName": "type", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A3LogC9AttributeC4typeSSvp", + "mangledName": "$s6Sentry0A3LogC9AttributeC4typeSSvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC9AttributeC4typeSSvg", + "mangledName": "$s6Sentry0A3LogC9AttributeC4typeSSvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "value", + "printedName": "value", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A3LogC9AttributeC5valueypvp", + "mangledName": "$s6Sentry0A3LogC9AttributeC5valueypvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC9AttributeC5valueypvg", + "mangledName": "$s6Sentry0A3LogC9AttributeC5valueypvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(string:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC6stringAESS_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC6stringAESS_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(boolean:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC7booleanAESb_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC7booleanAESb_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(integer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC7integerAESi_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC7integerAESi_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(double:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC6doubleAESd_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC6doubleAESd_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(float:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC5floatAESf_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC5floatAESf_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeCAEycfc", + "mangledName": "$s6Sentry0A3LogC9AttributeCAEycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Decoder", + "printedName": "Swift.Decoder", + "usr": "s:s7DecoderP" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC4fromAEs7Decoder_p_tKcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC4fromAEs7Decoder_p_tKcfc", + "moduleName": "Sentry", + "declAttributes": [ + "Convenience", + "AccessControl", + "SPIAccessControl" + ], + "isFromExtension": true, + "spi_group_names": [ + "Private" + ], + "throwing": true, + "init_kind": "Convenience" + }, + { + "kind": "Function", + "name": "encode", + "printedName": "encode(to:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Encoder", + "printedName": "Swift.Encoder", + "usr": "s:s7EncoderP" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A3LogC9AttributeC6encode2toys7Encoder_p_tKF", + "mangledName": "$s6Sentry0A3LogC9AttributeC6encode2toys7Encoder_p_tKF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "SPIAccessControl" + ], + "isFromExtension": true, + "spi_group_names": [ + "Private" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:6Sentry0A3LogC9AttributeC", + "mangledName": "$s6Sentry0A3LogC9AttributeC", + "moduleName": "Sentry", + "objc_name": "SentryStructuredLogAttribute", + "declAttributes": [ + "Final", + "AccessControl", + "ObjCMembers", + "ObjC", + "RawDocComment" + ], + "isFromExtension": true, + "superclassUsr": "c:objc(cs)NSObject", + "hasMissingDesignatedInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Decodable", + "printedName": "Decodable", + "usr": "s:Se", + "mangledName": "$sSe" + }, + { + "kind": "Conformance", + "name": "Encodable", + "printedName": "Encodable", + "usr": "s:SE", + "mangledName": "$sSE" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryLog", + "mangledName": "$s6Sentry0A3LogC", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "ObjCMembers", + "ObjC", + "RawDocComment" ], "superclassUsr": "c:objc(cs)NSObject", "hasMissingDesignatedInitializers": true, @@ -3822,6 +5269,20 @@ "ObjectiveC.NSObject" ], "conformances": [ + { + "kind": "Conformance", + "name": "Decodable", + "printedName": "Decodable", + "usr": "s:Se", + "mangledName": "$sSe" + }, + { + "kind": "Conformance", + "name": "Encodable", + "printedName": "Encodable", + "usr": "s:SE", + "mangledName": "$sSE" + }, { "kind": "Conformance", "name": "Equatable", @@ -3883,13 +5344,6 @@ "ImplementationOnly" ] }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "Import", "name": "_SentryPrivate", @@ -3902,154 +5356,278 @@ }, { "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", + "name": "Darwin", + "printedName": "Darwin", "declKind": "Import", "moduleName": "Sentry" }, { "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", + "name": "Foundation", + "printedName": "Foundation", "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] + "moduleName": "Sentry" }, { "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", + "name": "MachO", + "printedName": "MachO", "declKind": "Import", "moduleName": "Sentry" }, { "kind": "TypeDecl", - "name": "SentryScreenshot", - "printedName": "SentryScreenshot", + "name": "LoadValidator", + "printedName": "LoadValidator", "children": [ { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "checkForDuplicatedSDK", + "printedName": "checkForDuplicatedSDK(imageName:imageAddress:imageSize:dispatchQueueWrapper:)", "children": [ { "kind": "TypeNominal", - "name": "SentryScreenshot", - "printedName": "Sentry.SentryScreenshot", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + }, + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + }, + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)init", - "mangledName": "$s6Sentry0A10ScreenshotCACycfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)LoadValidator(cm)checkForDuplicatedSDKWithImageName:imageAddress:imageSize:dispatchQueueWrapper:", + "mangledName": "$s6Sentry13LoadValidatorC21checkForDuplicatedSDK9imageName0H7Address0H4Size20dispatchQueueWrapperySS_So8NSNumberCAjA0a8DispatchmN0CtFZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "init", + "static": true, + "objc_name": "checkForDuplicatedSDKWithImageName:imageAddress:imageSize:dispatchQueueWrapper:", "declAttributes": [ - "Dynamic", + "Final", + "AccessControl", + "SPIAccessControl", "ObjC", - "Override", - "AccessControl" + "RawDocComment" ], "spi_group_names": [ "Private" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { - "kind": "Function", - "name": "appScreenshotsFromMainThread", - "printedName": "appScreenshotsFromMainThread()", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[UIKit.UIImage]", - "children": [ - { - "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" - } - ], - "usr": "s:Sa" + "name": "LoadValidator", + "printedName": "Sentry.LoadValidator", + "usr": "c:@M@Sentry@objc(cs)LoadValidator" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotsFromMainThread", - "mangledName": "$s6Sentry0A10ScreenshotC28appScreenshotsFromMainThreadSaySo7UIImageCGyF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)LoadValidator(im)init", + "mangledName": "$s6Sentry13LoadValidatorCACycfc", "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "AccessControl", - "RawDocComment", - "ObjC" + "Dynamic", + "ObjC", + "Override" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "appScreenshotDatasFromMainThread", - "printedName": "appScreenshotDatasFromMainThread()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[Foundation.Data]", - "children": [ - { - "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)LoadValidator", + "mangledName": "$s6Sentry13LoadValidatorC", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryReplayRecording", + "printedName": "SentryReplayRecording", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(segmentId:video:extraEvents:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayRecording", + "printedName": "Sentry.SentryReplayRecording", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "SentryVideoInfo", + "printedName": "Sentry.SentryVideoInfo", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Sentry.SentryRRWebEventProtocol]", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryRRWebEventProtocol", + "printedName": "Sentry.SentryRRWebEventProtocol", + "usr": "c:@M@Sentry@objc(pl)SentryRRWebEvent" } ], "usr": "s:Sa" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotDatasFromMainThread", - "mangledName": "$s6Sentry0A10ScreenshotC03appB19DatasFromMainThreadSay10Foundation4DataVGyF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)initWithSegmentId:video:extraEvents:", + "mangledName": "$s6Sentry0A15ReplayRecordingC9segmentId5video11extraEventsACSi_AA0A9VideoInfoCSayAA0A18RRWebEventProtocol_pGtcfc", "moduleName": "Sentry", "declAttributes": [ + "Convenience", "AccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "init_kind": "Convenience" }, { "kind": "Function", - "name": "saveScreenShots", - "printedName": "saveScreenShots(_:)", + "name": "headerForReplayRecording", + "printedName": "headerForReplayRecording()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)saveScreenShots:", - "mangledName": "$s6Sentry0A10ScreenshotC15saveScreenShotsyySSF", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)headerForReplayRecording", + "mangledName": "$s6Sentry0A15ReplayRecordingC09headerForbC0SDySSypGyF", "moduleName": "Sentry", "declAttributes": [ "AccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ @@ -4059,27 +5637,40 @@ }, { "kind": "Function", - "name": "appScreenshots", - "printedName": "appScreenshots()", + "name": "serialize", + "printedName": "serialize()", "children": [ { "kind": "TypeNominal", "name": "Array", - "printedName": "[UIKit.UIImage]", + "printedName": "[[Swift.String : Any]]", "children": [ { "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" } ], "usr": "s:Sa" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshots", - "mangledName": "$s6Sentry0A10ScreenshotC14appScreenshotsSaySo7UIImageCGyF", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)serialize", + "mangledName": "$s6Sentry0A15ReplayRecordingC9serializeSaySDySSypGGyF", "moduleName": "Sentry", "declAttributes": [ "AccessControl", @@ -4091,42 +5682,38 @@ "funcSelfKind": "NonMutating" }, { - "kind": "Function", - "name": "appScreenshotsData", - "printedName": "appScreenshotsData()", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[Foundation.Data]", - "children": [ - { - "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" - } - ], - "usr": "s:Sa" + "name": "SentryReplayRecording", + "printedName": "Sentry.SentryReplayRecording", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotsData", - "mangledName": "$s6Sentry0A10ScreenshotC18appScreenshotsDataSay10Foundation0E0VGyF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)init", + "mangledName": "$s6Sentry0A15ReplayRecordingCACycfc", "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "AccessControl", - "ObjC" + "Dynamic", + "ObjC", + "Override" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot", - "mangledName": "$s6Sentry0A10ScreenshotC", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording", + "mangledName": "$s6Sentry0A15ReplayRecordingC", "moduleName": "Sentry", "declAttributes": [ "AccessControl", @@ -4138,7 +5725,7 @@ "Private" ], "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, + "hasMissingDesignatedInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], @@ -4220,20 +5807,48 @@ }, { "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", + "name": "Foundation", + "printedName": "Foundation", "declKind": "Import", "moduleName": "Sentry" }, { "kind": "TypeDecl", - "name": "SentryReplayVideoMaker", - "printedName": "SentryReplayVideoMaker", + "name": "SentrySessionReplayDelegate", + "printedName": "SentrySessionReplayDelegate", "children": [ { "kind": "Function", - "name": "addFrameAsync", - "printedName": "addFrameAsync(timestamp:maskedViewImage:forScreen:)", + "name": "sessionReplayShouldCaptureReplayForError", + "printedName": "sessionReplayShouldCaptureReplayForError()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayShouldCaptureReplayForError", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionc13ShouldCaptureC8ForErrorSbyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "sessionReplayNewSegment", + "printedName": "sessionReplayNewSegment(replayEvent:replayRecording:videoUrl:)", "children": [ { "kind": "TypeNominal", @@ -4242,37 +5857,29 @@ }, { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "SentryReplayEvent", + "printedName": "Sentry.SentryReplayEvent", + "usr": "c:@M@Sentry@objc(cs)SentryReplayEvent" }, { "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" + "name": "SentryReplayRecording", + "printedName": "Sentry.SentryReplayRecording", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "Swift.String?", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "usr": "s:Sq" + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)addFrameAsyncWithTimestamp:maskedViewImage:forScreen:", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP13addFrameAsync9timestamp15maskedViewImage9forScreeny10Foundation4DateV_So7UIImageCSSSgtF", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayNewSegmentWithReplayEvent:replayRecording:videoUrl:", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionC10NewSegment11replayEvent0H9Recording8videoUrlyAA0acI0C_AA0acJ0C10Foundation3URLVtF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ "ObjC" @@ -4285,8 +5892,8 @@ }, { "kind": "Function", - "name": "releaseFramesUntil", - "printedName": "releaseFramesUntil(_:)", + "name": "sessionReplayStarted", + "printedName": "sessionReplayStarted(replayId:)", "children": [ { "kind": "TypeNominal", @@ -4295,17 +5902,17 @@ }, { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)releaseFramesUntil:", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP18releaseFramesUntilyy10Foundation4DateVF", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayStartedWithReplayId:", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionC7Started8replayIdyAA0aH0C_tF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ "ObjC" @@ -4318,59 +5925,30 @@ }, { "kind": "Function", - "name": "createVideoInBackgroundWith", - "printedName": "createVideoInBackgroundWith(beginning:end:completion:)", + "name": "breadcrumbsForSessionReplay", + "printedName": "breadcrumbsForSessionReplay()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - }, - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - }, - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "([Sentry.SentryVideoInfo]) -> ()", + "name": "Array", + "printedName": "[Sentry.Breadcrumb]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[Sentry.SentryVideoInfo]", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryVideoInfo", - "printedName": "Sentry.SentryVideoInfo", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" - } - ], - "usr": "s:Sa" + "name": "Breadcrumb", + "printedName": "Sentry.Breadcrumb", + "usr": "c:objc(cs)SentryBreadcrumb" } - ] + ], + "usr": "s:Sa" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)createVideoInBackgroundWithBeginning:end:completion:", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP06createC16InBackgroundWith9beginning3end10completiony10Foundation4DateV_AJySayAA0aC4InfoCGctF", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)breadcrumbsForSessionReplay", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP014breadcrumbsForbC0SaySo0A10BreadcrumbCGyF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ "ObjC" @@ -4383,42 +5961,30 @@ }, { "kind": "Function", - "name": "createVideoWith", - "printedName": "createVideoWith(beginning:end:)", + "name": "currentScreenNameForSessionReplay", + "printedName": "currentScreenNameForSessionReplay()", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[Sentry.SentryVideoInfo]", + "name": "Optional", + "printedName": "Swift.String?", "children": [ { "kind": "TypeNominal", - "name": "SentryVideoInfo", - "printedName": "Sentry.SentryVideoInfo", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "usr": "s:Sa" - }, - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - }, - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "usr": "s:Sq" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)createVideoWithBeginning:end:", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP06createC4With9beginning3endSayAA0aC4InfoCG10Foundation4DateV_ALtF", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)currentScreenNameForSessionReplay", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP020currentScreenNameForbC0SSSgyF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ "ObjC" @@ -4431,8 +5997,8 @@ } ], "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP", "moduleName": "Sentry", "genericSig": "<τ_0_0 : ObjectiveC.NSObjectProtocol>", "sugared_genericSig": "", @@ -4445,15 +6011,32 @@ "Private" ] }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "TypeDecl", - "name": "SentryFileManagerProtocol", - "printedName": "SentryFileManagerProtocol", + "name": "SentrySDKLogSupport", + "printedName": "SentrySDKLogSupport", "children": [ { "kind": "Function", - "name": "moveState", - "printedName": "moveState(_:toPreviousState:)", + "name": "configure", + "printedName": "configure(_:diagnosticLevel:)", "children": [ { "kind": "TypeNominal", @@ -4462,185 +6045,130 @@ }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "SentryLevel", + "printedName": "Sentry.SentryLevel", + "usr": "c:@M@Sentry@E@SentryLevel" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)moveState:toPreviousState:", - "mangledName": "$s6Sentry0A19FileManagerProtocolP9moveState_010toPreviousF0ySS_SStF", + "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport(cm)configure:diagnosticLevel:", + "mangledName": "$s6Sentry0A13SDKLogSupportC9configure_15diagnosticLevelySb_AA0aF0OtFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, + "static": true, "declAttributes": [ + "Final", + "AccessControl", "ObjC" ], "spi_group_names": [ "Private" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { - "kind": "Function", - "name": "readData", - "printedName": "readData(fromPath:)", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" - }, - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "SentrySDKLogSupport", + "printedName": "Sentry.SentrySDKLogSupport", + "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)readDataFromPath:error:", - "mangledName": "$s6Sentry0A19FileManagerProtocolP8readData8fromPath10Foundation0F0VSS_tKF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport(im)init", + "mangledName": "$s6Sentry0A13SDKLogSupportCACycfc", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "ObjC" + "Dynamic", + "ObjC", + "Override" ], "spi_group_names": [ "Private" ], - "throwing": true, - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "write", - "printedName": "write(_:toPath:)", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - }, - { - "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" - }, - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)writeData:toPath:", - "mangledName": "$s6Sentry0A19FileManagerProtocolP5write_6toPathSb10Foundation4DataV_SStF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, - "objc_name": "writeData:toPath:", - "declAttributes": [ - "DiscardableResult", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "removeFile", - "printedName": "removeFile(atPath:)", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)removeFileAtPath:", - "mangledName": "$s6Sentry0A19FileManagerProtocolP06removeB06atPathySS_tF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "getSentryPathAsURL", - "printedName": "getSentryPathAsURL()", - "children": [ - { - "kind": "TypeNominal", - "name": "URL", - "printedName": "Foundation.URL", - "usr": "s:10Foundation3URLV" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)getSentryPathAsURL", - "mangledName": "$s6Sentry0A19FileManagerProtocolP03getA9PathAsURL10Foundation0H0VyF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" + "init_kind": "Designated" } ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol", - "mangledName": "$s6Sentry0A19FileManagerProtocolP", + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport", + "mangledName": "$s6Sentry0A13SDKLogSupportC", "moduleName": "Sentry", - "genericSig": "<τ_0_0 : AnyObject>", - "sugared_genericSig": "", "declAttributes": [ "AccessControl", + "SPIAccessControl", "ObjC", - "SPIAccessControl" + "RawDocComment" ], "spi_group_names": [ "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } ] }, { @@ -4650,6 +6178,13 @@ "declKind": "Import", "moduleName": "Sentry" }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "Import", "name": "_SentryPrivate", @@ -4660,6 +6195,13 @@ "ImplementationOnly" ] }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "Import", "name": "_SentryPrivate", @@ -4677,1062 +6219,955 @@ "declKind": "Import", "moduleName": "Sentry" }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment" - ] - }, { "kind": "TypeDecl", - "name": "SentryReplayOptions", - "printedName": "SentryReplayOptions", + "name": "SentryLogger", + "printedName": "SentryLogger", "children": [ { - "kind": "TypeDecl", - "name": "DefaultValues", - "printedName": "DefaultValues", + "kind": "Constructor", + "name": "init", + "printedName": "init(hub:dateProvider:batcher:)", "children": [ { - "kind": "Var", - "name": "sessionSampleRate", - "printedName": "sessionSampleRate", + "kind": "TypeNominal", + "name": "SentryLogger", + "printedName": "Sentry.SentryLogger", + "usr": "c:@M@Sentry@objc(cs)SentryLogger" + }, + { + "kind": "TypeNominal", + "name": "SentryHub", + "printedName": "Sentry.SentryHub", + "usr": "c:objc(cs)SentryHub" + }, + { + "kind": "TypeNominal", + "name": "SentryCurrentDateProvider", + "printedName": "Sentry.SentryCurrentDateProvider", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.SentryLogBatcher?", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "SentryLogBatcher", + "printedName": "Sentry.SentryLogBatcher", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher" } ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" - } - ] + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A6LoggerC3hub12dateProvider7batcherACSo0A3HubC_AA0a11CurrentDateE0_pAA0A10LogBatcherCSgtcfc", + "mangledName": "$s6Sentry0A6LoggerC3hub12dateProvider7batcherACSo0A3HubC_AA0a11CurrentDateE0_pAA0A10LogBatcherCSgtcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "trace", + "printedName": "trace(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "onErrorSampleRate", - "printedName": "onErrorSampleRate", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "hasDefaultArg": true, + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC5trace_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC5trace_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "trace", + "printedName": "trace(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "maskAllText", - "printedName": "maskAllText", + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)trace:", + "mangledName": "$s6Sentry0A6LoggerC5traceyySSF", + "moduleName": "Sentry", + "objc_name": "trace:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "trace", + "printedName": "trace(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)trace:attributes:", + "mangledName": "$s6Sentry0A6LoggerC5trace_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "trace:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "debug", + "printedName": "debug(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "maskAllImages", - "printedName": "maskAllImages", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" - } - ] + "hasDefaultArg": true, + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC5debug_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC5debug_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "debug", + "printedName": "debug(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "enableViewRendererV2", - "printedName": "enableViewRendererV2", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" - } - ] + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)debug:", + "mangledName": "$s6Sentry0A6LoggerC5debugyySSF", + "moduleName": "Sentry", + "objc_name": "debug:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "debug", + "printedName": "debug(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "enableFastViewRendering", - "printedName": "enableFastViewRendering", + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)debug:attributes:", + "mangledName": "$s6Sentry0A6LoggerC5debug_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "debug:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "info", + "printedName": "info(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "quality", - "printedName": "quality", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "hasDefaultArg": true, + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC4info_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC4info_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "info", + "printedName": "info(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "maskedViewClasses", - "printedName": "maskedViewClasses", + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)info:", + "mangledName": "$s6Sentry0A6LoggerC4infoyySSF", + "moduleName": "Sentry", + "objc_name": "info:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "info", + "printedName": "info(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl", - "RawDocComment" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)info:attributes:", + "mangledName": "$s6Sentry0A6LoggerC4info_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "info:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "warn", + "printedName": "warn(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "unmaskedViewClasses", - "printedName": "unmaskedViewClasses", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "hasDefaultArg": true, + "usr": "s:SD" } ], - "declKind": "Class", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC", + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC4warn_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC4warn_10attributesyAA0A10LogMessageV_SDySSypGtF", "moduleName": "Sentry", "declAttributes": [ + "Final", "AccessControl", "RawDocComment" ], - "hasMissingDesignatedInitializers": true + "funcSelfKind": "NonMutating" }, { - "kind": "TypeDecl", - "name": "SentryReplayQuality", - "printedName": "SentryReplayQuality", + "kind": "Function", + "name": "warn", + "printedName": "warn(_:)", "children": [ { - "kind": "Var", - "name": "low", - "printedName": "low", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO3lowyA2EmF", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO3lowyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 0 + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "medium", - "printedName": "medium", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO6mediumyA2EmF", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO6mediumyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 1 + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)warn:", + "mangledName": "$s6Sentry0A6LoggerC4warnyySSF", + "moduleName": "Sentry", + "objc_name": "warn:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "warn", + "printedName": "warn(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "high", - "printedName": "high", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO4highyA2EmF", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO4highyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 2 + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" }, { - "kind": "Var", - "name": "description", - "printedName": "description", + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", "name": "String", "printedName": "Swift.String", "usr": "s:SS" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvp", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvp", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl" - ], - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvg", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvg", - "moduleName": "Sentry", - "accessorKind": "get" - } - ] - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init(rawValue:)", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality?", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ], - "usr": "s:Sq" }, { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ], - "declKind": "Constructor", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueAESgSi_tcfc", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueAESgSi_tcfc", - "moduleName": "Sentry", - "implicit": true, - "init_kind": "Designated" - }, - { - "kind": "Var", - "name": "rawValue", - "printedName": "rawValue", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivp", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivp", - "moduleName": "Sentry", - "implicit": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivg", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivg", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "get" - } - ] + "usr": "s:SD" } ], - "declKind": "Enum", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)warn:attributes:", + "mangledName": "$s6Sentry0A6LoggerC4warn_10attributesySS_SDySSypGtF", "moduleName": "Sentry", + "objc_name": "warn:attributes:", "declAttributes": [ + "Final", "AccessControl", "ObjC", "RawDocComment" ], - "enumRawTypeName": "Int", - "conformances": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "error", + "printedName": "error(_:attributes:)", + "children": [ { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" }, { - "kind": "Conformance", - "name": "RawRepresentable", - "printedName": "RawRepresentable", + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { - "kind": "TypeWitness", - "name": "RawValue", - "printedName": "RawValue", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ] + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } ], - "usr": "s:SY", - "mangledName": "$sSY" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "hasDefaultArg": true, + "usr": "s:SD" } - ] + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC5error_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC5error_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "sessionSampleRate", - "printedName": "sessionSampleRate", + "kind": "Function", + "name": "error", + "printedName": "error(_:)", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sessionSampleRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)error:", + "mangledName": "$s6Sentry0A6LoggerC5erroryySSF", "moduleName": "Sentry", + "objc_name": "error:", "declAttributes": [ - "HasStorage", + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "error", + "printedName": "error(_:attributes:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sessionSampleRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" }, { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setSessionSampleRate:", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)error:attributes:", + "mangledName": "$s6Sentry0A6LoggerC5error_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "error:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "fatal", + "printedName": "fatal(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC17sessionSampleRateSfvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "hasDefaultArg": true, + "usr": "s:SD" } - ] + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC5fatal_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC5fatal_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "onErrorSampleRate", - "printedName": "onErrorSampleRate", + "kind": "Function", + "name": "fatal", + "printedName": "fatal(_:)", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)onErrorSampleRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)fatal:", + "mangledName": "$s6Sentry0A6LoggerC5fatalyySSF", "moduleName": "Sentry", + "objc_name": "fatal:", "declAttributes": [ - "HasStorage", + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "fatal", + "printedName": "fatal(_:attributes:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)onErrorSampleRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" }, { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setOnErrorSampleRate:", - "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)fatal:attributes:", + "mangledName": "$s6Sentry0A6LoggerC5fatal_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "fatal:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "SentryLogger", + "printedName": "Sentry.SentryLogger", + "usr": "c:@M@Sentry@objc(cs)SentryLogger" } - ] + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)init", + "mangledName": "$s6Sentry0A6LoggerCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryLogger", + "mangledName": "$s6Sentry0A6LoggerC", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "superclassUsr": "c:objc(cs)NSObject", + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryVideoInfo", + "printedName": "SentryVideoInfo", + "children": [ { "kind": "Var", - "name": "maskAllText", - "printedName": "maskAllText", + "name": "path", + "printedName": "path", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskAllText", - "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvp", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)path", + "mangledName": "$s6Sentry0A9VideoInfoC4path10Foundation3URLVvp", "moduleName": "Sentry", - "objc_name": "maskAllText", "declAttributes": [ - "ObjC", + "Final", "HasStorage", "AccessControl", - "RawDocComment" + "ObjC" + ], + "spi_group_names": [ + "Private" ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -5742,92 +7177,53 @@ "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskAllText", - "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvg", - "moduleName": "Sentry", - "implicit": true, - "objc_name": "maskAllText", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskAllText:", - "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvs", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)path", + "mangledName": "$s6Sentry0A9VideoInfoC4path10Foundation3URLVvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } + "spi_group_names": [ + "Private" ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC11maskAllTextSbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "maskAllImages", - "printedName": "maskAllImages", + "name": "start", + "printedName": "start", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskAllImages", - "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvp", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)start", + "mangledName": "$s6Sentry0A9VideoInfoC5start10Foundation4DateVvp", "moduleName": "Sentry", - "objc_name": "maskAllImages", "declAttributes": [ - "ObjC", + "Final", "HasStorage", "AccessControl", - "RawDocComment" + "ObjC" + ], + "spi_group_names": [ + "Private" ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -5837,91 +7233,53 @@ "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskAllImages", - "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvg", - "moduleName": "Sentry", - "implicit": true, - "objc_name": "maskAllImages", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskAllImages:", - "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvs", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)start", + "mangledName": "$s6Sentry0A9VideoInfoC5start10Foundation4DateVvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } + "spi_group_names": [ + "Private" ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13maskAllImagesSbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "quality", - "printedName": "quality", + "name": "end", + "printedName": "end", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)quality", - "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvp", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)end", + "mangledName": "$s6Sentry0A9VideoInfoC3end10Foundation4DateVvp", "moduleName": "Sentry", "declAttributes": [ + "Final", "HasStorage", "AccessControl", - "RawDocComment", "ObjC" ], + "spi_group_names": [ + "Private" + ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -5931,580 +7289,596 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)quality", - "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setQuality:", - "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvs", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)end", + "mangledName": "$s6Sentry0A9VideoInfoC3end10Foundation4DateVvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } + "spi_group_names": [ + "Private" ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { - "kind": "Var", - "name": "maskedViewClasses", - "printedName": "maskedViewClasses", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" + "name": "SentryVideoInfo", + "printedName": "Sentry.SentryVideoInfo", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskedViewClasses", - "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvp", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)init", + "mangledName": "$s6Sentry0A9VideoInfoCACycfc", "moduleName": "Sentry", - "objc_name": "maskedViewClasses", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ + "Dynamic", "ObjC", - "HasStorage", - "AccessControl", - "RawDocComment" + "Override" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskedViewClasses", - "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvg", - "moduleName": "Sentry", - "implicit": true, - "objc_name": "maskedViewClasses", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskedViewClasses:", - "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo", + "mangledName": "$s6Sentry0A9VideoInfoC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "hasMissingDesignatedInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryScreenshot", + "printedName": "SentryScreenshot", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "SentryScreenshot", + "printedName": "Sentry.SentryScreenshot", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot" } - ] + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)init", + "mangledName": "$s6Sentry0A10ScreenshotCACycfc", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" }, { - "kind": "Var", - "name": "unmaskedViewClasses", - "printedName": "unmaskedViewClasses", + "kind": "Function", + "name": "appScreenshotsFromMainThread", + "printedName": "appScreenshotsFromMainThread()", "children": [ { "kind": "TypeNominal", "name": "Array", - "printedName": "[AnyObject.Type]", + "printedName": "[UIKit.UIImage]", "children": [ { "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" } ], "usr": "s:Sa" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)unmaskedViewClasses", - "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotsFromMainThread", + "mangledName": "$s6Sentry0A10ScreenshotC28appScreenshotsFromMainThreadSaySo7UIImageCGyF", "moduleName": "Sentry", - "objc_name": "unmaskedViewClasses", "declAttributes": [ - "ObjC", - "HasStorage", "AccessControl", - "RawDocComment" + "RawDocComment", + "ObjC" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)unmaskedViewClasses", - "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvg", - "moduleName": "Sentry", - "implicit": true, - "objc_name": "unmaskedViewClasses", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setUnmaskedViewClasses:", - "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "appScreenshotDatasFromMainThread", + "printedName": "appScreenshotDatasFromMainThread()", + "children": [ { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Foundation.Data]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "usr": "s:Sa" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotDatasFromMainThread", + "mangledName": "$s6Sentry0A10ScreenshotC03appB19DatasFromMainThreadSay10Foundation4DataVGyF", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "enableExperimentalViewRenderer", - "printedName": "enableExperimentalViewRenderer", + "kind": "Function", + "name": "saveScreenShots", + "printedName": "saveScreenShots(_:)", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableExperimentalViewRenderer", - "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)saveScreenShots:", + "mangledName": "$s6Sentry0A10ScreenshotC15saveScreenShotsyySSF", "moduleName": "Sentry", - "deprecated": true, "declAttributes": [ "AccessControl", - "Available", "RawDocComment", "ObjC" ], - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableExperimentalViewRenderer", - "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvg", - "moduleName": "Sentry", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableExperimentalViewRenderer:", - "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvs", - "moduleName": "Sentry", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "appScreenshots", + "printedName": "appScreenshots()", + "children": [ { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "Array", + "printedName": "[UIKit.UIImage]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvM", - "moduleName": "Sentry", - "deprecated": true, - "implicit": true, - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "enableViewRendererV2", - "printedName": "enableViewRendererV2", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "usr": "s:Sa" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableViewRendererV2", - "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshots", + "mangledName": "$s6Sentry0A10ScreenshotC14appScreenshotsSaySo7UIImageCGyF", "moduleName": "Sentry", "declAttributes": [ - "HasStorage", "AccessControl", - "RawDocComment", "ObjC" ], - "hasStorage": true, - "accessors": [ + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "appScreenshotsData", + "printedName": "appScreenshotsData()", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Foundation.Data]", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableViewRendererV2", - "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableViewRendererV2:", - "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "usr": "s:Sa" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotsData", + "mangledName": "$s6Sentry0A10ScreenshotC18appScreenshotsDataSay10Foundation0E0VGyF", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot", + "mangledName": "$s6Sentry0A10ScreenshotC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryReplayVideoMaker", + "printedName": "SentryReplayVideoMaker", + "children": [ + { + "kind": "Function", + "name": "addFrameAsync", + "printedName": "addFrameAsync(timestamp:maskedViewImage:forScreen:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + }, + { + "kind": "TypeNominal", + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC20enableViewRendererV2SbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2SbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "usr": "s:Sq" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)addFrameAsyncWithTimestamp:maskedViewImage:forScreen:", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP13addFrameAsync9timestamp15maskedViewImage9forScreeny10Foundation4DateV_So7UIImageCSSSgtF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "enableFastViewRendering", - "printedName": "enableFastViewRendering", + "kind": "Function", + "name": "releaseFramesUntil", + "printedName": "releaseFramesUntil(_:)", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableFastViewRendering", - "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)releaseFramesUntil:", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP18releaseFramesUntilyy10Foundation4DateVF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "RawDocComment", "ObjC" ], - "hasStorage": true, - "accessors": [ + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "createVideoInBackgroundWith", + "printedName": "createVideoInBackgroundWith(beginning:end:completion:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableFastViewRendering", - "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + }, + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "([Sentry.SentryVideoInfo]) -> ()", "children": [ { "kind": "TypeNominal", @@ -6513,692 +7887,5032 @@ }, { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableFastViewRendering:", - "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "Array", + "printedName": "[Sentry.SentryVideoInfo]", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryVideoInfo", + "printedName": "Sentry.SentryVideoInfo", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + } + ], + "usr": "s:Sa" } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "replayBitRate", - "printedName": "replayBitRate", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + ] } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)replayBitRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC13replayBitRateSivp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)createVideoInBackgroundWithBeginning:end:completion:", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP06createC16InBackgroundWith9beginning3end10completiony10Foundation4DateV_AJySayAA0aC4InfoCGctF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "accessors": [ + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "createVideoWith", + "printedName": "createVideoWith(beginning:end:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Sentry.SentryVideoInfo]", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "SentryVideoInfo", + "printedName": "Sentry.SentryVideoInfo", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)replayBitRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC13replayBitRateSivg", - "moduleName": "Sentry", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - } - ] - }, - { - "kind": "Var", - "name": "sizeScale", - "printedName": "sizeScale", - "children": [ + "usr": "s:Sa" + }, { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + }, + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sizeScale", - "mangledName": "$s6Sentry0A13ReplayOptionsC9sizeScaleSfvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)createVideoWithBeginning:end:", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP06createC4With9beginning3endSayAA0aC4InfoCG10Foundation4DateV_ALtF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sizeScale", - "mangledName": "$s6Sentry0A13ReplayOptionsC9sizeScaleSfvg", - "moduleName": "Sentry", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - } - ] - }, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : ObjectiveC.NSObjectProtocol>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "TypeDecl", + "name": "SentryFileManagerProtocol", + "printedName": "SentryFileManagerProtocol", + "children": [ { - "kind": "Var", - "name": "frameRate", - "printedName": "frameRate", + "kind": "Function", + "name": "moveState", + "printedName": "moveState(_:toPreviousState:)", "children": [ { "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)frameRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)moveState:toPreviousState:", + "mangledName": "$s6Sentry0A19FileManagerProtocolP9moveState_010toPreviousF0ySS_SStF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "hasStorage": true, - "accessors": [ + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "readData", + "printedName": "readData(fromPath:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)frameRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setFrameRate:", - "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "TypeNominal", + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC9frameRateSuvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "errorReplayDuration", - "printedName": "errorReplayDuration", - "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)errorReplayDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)readDataFromPath:error:", + "mangledName": "$s6Sentry0A19FileManagerProtocolP8readData8fromPath10Foundation0F0VSS_tKF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "hasStorage": true, - "accessors": [ + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "write", + "printedName": "write(_:toPath:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)errorReplayDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setErrorReplayDuration:", - "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "TypeNominal", + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC05errorB8DurationSdvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)writeData:toPath:", + "mangledName": "$s6Sentry0A19FileManagerProtocolP5write_6toPathSb10Foundation4DataV_SStF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, + "objc_name": "writeData:toPath:", + "declAttributes": [ + "DiscardableResult", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "sessionSegmentDuration", - "printedName": "sessionSegmentDuration", + "kind": "Function", + "name": "removeFile", + "printedName": "removeFile(atPath:)", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sessionSegmentDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)removeFileAtPath:", + "mangledName": "$s6Sentry0A19FileManagerProtocolP06removeB06atPathySS_tF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sessionSegmentDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setSessionSegmentDuration:", - "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" - } - ] + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "maximumDuration", - "printedName": "maximumDuration", + "kind": "Function", + "name": "getSentryPathAsURL", + "printedName": "getSentryPathAsURL()", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maximumDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)getSentryPathAsURL", + "mangledName": "$s6Sentry0A19FileManagerProtocolP03getA9PathAsURL10Foundation0H0VyF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "hasStorage": true, - "accessors": [ + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol", + "mangledName": "$s6Sentry0A19FileManagerProtocolP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "ObjC", + "SPIAccessControl" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "SentryReplayOptions", + "printedName": "SentryReplayOptions", + "children": [ + { + "kind": "TypeDecl", + "name": "DefaultValues", + "printedName": "DefaultValues", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "Var", + "name": "sessionSampleRate", + "printedName": "sessionSampleRate", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maximumDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvg", + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvpZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ - "ObjC" + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" ], - "accessorKind": "get" + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "Var", + "name": "onErrorSampleRate", + "printedName": "onErrorSampleRate", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaximumDuration:", - "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvs", + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvpZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ - "ObjC" + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" ], - "accessorKind": "set" + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { + "kind": "Var", + "name": "maskAllText", + "printedName": "maskAllText", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "maskAllImages", + "printedName": "maskAllImages", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "enableViewRendererV2", + "printedName": "enableViewRendererV2", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "enableFastViewRendering", + "printedName": "enableFastViewRendering", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "quality", + "printedName": "quality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "maskedViewClasses", + "printedName": "maskedViewClasses", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "unmaskedViewClasses", + "printedName": "unmaskedViewClasses", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + } + ], + "declKind": "Class", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "hasMissingDesignatedInitializers": true + }, + { + "kind": "TypeDecl", + "name": "SentryReplayQuality", + "printedName": "SentryReplayQuality", + "children": [ + { + "kind": "Var", + "name": "low", + "printedName": "low", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO3lowyA2EmF", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO3lowyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 0 + }, + { + "kind": "Var", + "name": "medium", + "printedName": "medium", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO6mediumyA2EmF", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO6mediumyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 1 + }, + { + "kind": "Var", + "name": "high", + "printedName": "high", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO4highyA2EmF", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO4highyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 2 + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvp", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvp", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvg", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvg", + "moduleName": "Sentry", + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality?", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueAESgSi_tcfc", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueAESgSi_tcfc", + "moduleName": "Sentry", + "implicit": true, + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivp", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivp", + "moduleName": "Sentry", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivg", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivg", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Enum", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC", + "RawDocComment" + ], + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + } + ] + }, + { + "kind": "Var", + "name": "sessionSampleRate", + "printedName": "sessionSampleRate", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sessionSampleRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sessionSampleRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setSessionSampleRate:", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC17sessionSampleRateSfvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "onErrorSampleRate", + "printedName": "onErrorSampleRate", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)onErrorSampleRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)onErrorSampleRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setOnErrorSampleRate:", + "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "maskAllText", + "printedName": "maskAllText", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskAllText", + "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvp", + "moduleName": "Sentry", + "objc_name": "maskAllText", + "declAttributes": [ + "ObjC", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskAllText", + "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvg", + "moduleName": "Sentry", + "implicit": true, + "objc_name": "maskAllText", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskAllText:", + "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC11maskAllTextSbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "maskAllImages", + "printedName": "maskAllImages", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskAllImages", + "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvp", + "moduleName": "Sentry", + "objc_name": "maskAllImages", + "declAttributes": [ + "ObjC", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskAllImages", + "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvg", + "moduleName": "Sentry", + "implicit": true, + "objc_name": "maskAllImages", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskAllImages:", + "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13maskAllImagesSbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "quality", + "printedName": "quality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)quality", + "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)quality", + "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setQuality:", + "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "maskedViewClasses", + "printedName": "maskedViewClasses", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskedViewClasses", + "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvp", + "moduleName": "Sentry", + "objc_name": "maskedViewClasses", + "declAttributes": [ + "ObjC", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskedViewClasses", + "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvg", + "moduleName": "Sentry", + "implicit": true, + "objc_name": "maskedViewClasses", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskedViewClasses:", + "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "unmaskedViewClasses", + "printedName": "unmaskedViewClasses", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)unmaskedViewClasses", + "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvp", + "moduleName": "Sentry", + "objc_name": "unmaskedViewClasses", + "declAttributes": [ + "ObjC", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)unmaskedViewClasses", + "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvg", + "moduleName": "Sentry", + "implicit": true, + "objc_name": "unmaskedViewClasses", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setUnmaskedViewClasses:", + "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "enableExperimentalViewRenderer", + "printedName": "enableExperimentalViewRenderer", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableExperimentalViewRenderer", + "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvp", + "moduleName": "Sentry", + "deprecated": true, + "declAttributes": [ + "AccessControl", + "Available", + "RawDocComment", + "ObjC" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableExperimentalViewRenderer", + "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvg", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableExperimentalViewRenderer:", + "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvs", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvM", + "moduleName": "Sentry", + "deprecated": true, + "implicit": true, + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "enableViewRendererV2", + "printedName": "enableViewRendererV2", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableViewRendererV2", + "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableViewRendererV2", + "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableViewRendererV2:", + "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC20enableViewRendererV2SbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2SbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "enableFastViewRendering", + "printedName": "enableFastViewRendering", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableFastViewRendering", + "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableFastViewRendering", + "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableFastViewRendering:", + "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "replayBitRate", + "printedName": "replayBitRate", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)replayBitRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC13replayBitRateSivp", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)replayBitRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC13replayBitRateSivg", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "sizeScale", + "printedName": "sizeScale", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sizeScale", + "mangledName": "$s6Sentry0A13ReplayOptionsC9sizeScaleSfvp", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sizeScale", + "mangledName": "$s6Sentry0A13ReplayOptionsC9sizeScaleSfvg", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "frameRate", + "printedName": "frameRate", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)frameRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)frameRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setFrameRate:", + "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC9frameRateSuvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "errorReplayDuration", + "printedName": "errorReplayDuration", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)errorReplayDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)errorReplayDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setErrorReplayDuration:", + "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC05errorB8DurationSdvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "sessionSegmentDuration", + "printedName": "sessionSegmentDuration", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sessionSegmentDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sessionSegmentDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setSessionSegmentDuration:", + "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "maximumDuration", + "printedName": "maximumDuration", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maximumDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maximumDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaximumDuration:", + "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC15maximumDurationSdvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayOptions", + "printedName": "Sentry.SentryReplayOptions", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)init", + "mangledName": "$s6Sentry0A13ReplayOptionsCACycfc", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override", + "Convenience", + "AccessControl", + "RawDocComment" + ], + "init_kind": "Convenience" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(dictionary:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayOptions", + "printedName": "Sentry.SentryReplayOptions", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)initWithDictionary:", + "mangledName": "$s6Sentry0A13ReplayOptionsC10dictionaryACSDySSypG_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "Convenience", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Convenience" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(sessionSampleRate:onErrorSampleRate:maskAllText:maskAllImages:enableViewRendererV2:enableFastViewRendering:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayOptions", + "printedName": "Sentry.SentryReplayOptions", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "hasDefaultArg": true, + "usr": "s:Sf" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "hasDefaultArg": true, + "usr": "s:Sf" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)initWithSessionSampleRate:onErrorSampleRate:maskAllText:maskAllImages:enableViewRendererV2:enableFastViewRendering:", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRate07onErroreF011maskAllText0iJ6Images20enableViewRendererV20m4FastN9RenderingACSf_SfS4btcfc", + "moduleName": "Sentry", + "declAttributes": [ + "Convenience", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "init_kind": "Convenience" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions", + "mangledName": "$s6Sentry0A13ReplayOptionsC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjCMembers", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "hasMissingDesignatedInitializers": true, + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "SentryRedactOptions", + "printedName": "SentryRedactOptions", + "usr": "c:@M@Sentry@objc(pl)SentryRedactOptions", + "mangledName": "$s6Sentry0A13RedactOptionsP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "CoreGraphics", + "printedName": "CoreGraphics", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryEventDecoder", + "printedName": "SentryEventDecoder", + "children": [ + { + "kind": "Function", + "name": "decodeEvent", + "printedName": "decodeEvent(jsonData:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.Event?", + "children": [ + { + "kind": "TypeNominal", + "name": "Event", + "printedName": "Sentry.Event", + "usr": "c:objc(cs)SentryEvent" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder(cm)decodeEventWithJsonData:", + "mangledName": "$s6Sentry0A12EventDecoderC06decodeB08jsonDataSo0aB0CSg10Foundation0F0V_tFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryEventDecoder", + "printedName": "Sentry.SentryEventDecoder", + "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder(im)init", + "mangledName": "$s6Sentry0A12EventDecoderCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder", + "mangledName": "$s6Sentry0A12EventDecoderC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjCMembers", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryUserFeedbackConfiguration", + "printedName": "SentryUserFeedbackConfiguration", + "children": [ + { + "kind": "Var", + "name": "animations", + "printedName": "animations", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)animations", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)animations", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setAnimations:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC10animationsSbvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "configureWidget", + "printedName": "configureWidget", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackWidgetConfiguration", + "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureWidget", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackWidgetConfiguration", + "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureWidget", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackWidgetConfiguration", + "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureWidget:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "useShakeGesture", + "printedName": "useShakeGesture", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)useShakeGesture", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)useShakeGesture", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setUseShakeGesture:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "showFormForScreenshots", + "printedName": "showFormForScreenshots", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)showFormForScreenshots", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)showFormForScreenshots", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setShowFormForScreenshots:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "customButton", + "printedName": "customButton", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "UIKit.UIButton?", + "children": [ + { + "kind": "TypeNominal", + "name": "UIButton", + "printedName": "UIKit.UIButton", + "usr": "c:objc(cs)UIButton" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)customButton", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "UIKit.UIButton?", + "children": [ + { + "kind": "TypeNominal", + "name": "UIButton", + "printedName": "UIKit.UIButton", + "usr": "c:objc(cs)UIButton" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)customButton", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "UIKit.UIButton?", + "children": [ + { + "kind": "TypeNominal", + "name": "UIButton", + "printedName": "UIKit.UIButton", + "usr": "c:objc(cs)UIButton" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setCustomButton:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "configureForm", + "printedName": "configureForm", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackFormConfiguration", + "printedName": "Sentry.SentryUserFeedbackFormConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureForm", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackFormConfiguration", + "printedName": "Sentry.SentryUserFeedbackFormConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureForm", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackFormConfiguration", + "printedName": "Sentry.SentryUserFeedbackFormConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureForm:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "tags", + "printedName": "tags", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)tags", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)tags", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setTags:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "onFormOpen", + "printedName": "onFormOpen", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onFormOpen", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onFormOpen", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnFormOpen:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "onFormClose", + "printedName": "onFormClose", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onFormClose", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onFormClose", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnFormClose:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "onSubmitSuccess", + "printedName": "onSubmitSuccess", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(([Swift.String : Any]) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "([Swift.String : Any]) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onSubmitSuccess", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(([Swift.String : Any]) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "([Swift.String : Any]) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onSubmitSuccess", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(([Swift.String : Any]) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "([Swift.String : Any]) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnSubmitSuccess:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { "kind": "TypeNominal", "name": "Void", "printedName": "()" } ], "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC15maximumDurationSdvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvM", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvM", "moduleName": "Sentry", "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], "accessorKind": "_modify" } ] }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Var", + "name": "onSubmitError", + "printedName": "onSubmitError", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayOptions", - "printedName": "Sentry.SentryReplayOptions", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + "name": "Optional", + "printedName": "((Swift.Error) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Error) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + } + ] + } + ], + "usr": "s:Sq" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)init", - "mangledName": "$s6Sentry0A13ReplayOptionsCACycfc", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onSubmitError", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvp", "moduleName": "Sentry", - "overriding": true, - "objc_name": "init", "declAttributes": [ - "Dynamic", - "ObjC", - "Override", - "Convenience", + "HasInitialValue", + "HasStorage", "AccessControl", - "RawDocComment" + "RawDocComment", + "ObjC" ], - "init_kind": "Convenience" - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init(dictionary:)", - "children": [ + "hasStorage": true, + "accessors": [ { - "kind": "TypeNominal", - "name": "SentryReplayOptions", - "printedName": "Sentry.SentryReplayOptions", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Swift.Error) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Error) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onSubmitError", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", "children": [ { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" + "name": "Optional", + "printedName": "((Swift.Error) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Error) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + } + ] + } + ], + "usr": "s:Sq" } ], - "usr": "s:SD" + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnSubmitError:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "configureTheme", + "printedName": "configureTheme", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)initWithDictionary:", - "mangledName": "$s6Sentry0A13ReplayOptionsC10dictionaryACSDySSypG_tcfc", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureTheme", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvp", "moduleName": "Sentry", "declAttributes": [ - "Convenience", + "HasInitialValue", + "HasStorage", "AccessControl", - "SPIAccessControl", "RawDocComment", "ObjC" ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Convenience" - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init(sessionSampleRate:onErrorSampleRate:maskAllText:maskAllImages:enableViewRendererV2:enableFastViewRendering:)", - "children": [ + "hasStorage": true, + "accessors": [ { - "kind": "TypeNominal", - "name": "SentryReplayOptions", - "printedName": "Sentry.SentryReplayOptions", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureTheme", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "hasDefaultArg": true, - "usr": "s:Sf" + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureTheme:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" }, { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "hasDefaultArg": true, - "usr": "s:Sf" - }, + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "configureDarkTheme", + "printedName": "configureDarkTheme", + "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "hasDefaultArg": true, - "usr": "s:Sb" - }, + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureDarkTheme", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "hasDefaultArg": true, - "usr": "s:Sb" + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureDarkTheme", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "hasDefaultArg": true, - "usr": "s:Sb" + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureDarkTheme:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "hasDefaultArg": true, - "usr": "s:Sb" + "name": "SentryUserFeedbackConfiguration", + "printedName": "Sentry.SentryUserFeedbackConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)initWithSessionSampleRate:onErrorSampleRate:maskAllText:maskAllImages:enableViewRendererV2:enableFastViewRendering:", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRate07onErroreF011maskAllText0iJ6Images20enableViewRendererV20m4FastN9RenderingACSf_SfS4btcfc", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)init", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationCACycfc", "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "Convenience", - "AccessControl", - "RawDocComment", - "ObjC" + "Dynamic", + "ObjC", + "Override" ], - "init_kind": "Convenience" + "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions", - "mangledName": "$s6Sentry0A13ReplayOptionsC", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC", "moduleName": "Sentry", + "intro_iOS": "13.0", "declAttributes": [ "AccessControl", "ObjCMembers", + "Available", + "RawDocComment", "ObjC" ], "superclassUsr": "c:objc(cs)NSObject", - "hasMissingDesignatedInitializers": true, "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], "conformances": [ - { - "kind": "Conformance", - "name": "SentryRedactOptions", - "printedName": "SentryRedactOptions", - "usr": "c:@M@Sentry@objc(pl)SentryRedactOptions", - "mangledName": "$s6Sentry0A13RedactOptionsP" - }, { "kind": "Conformance", "name": "Equatable", @@ -7250,23 +12964,6 @@ } ] }, - { - "kind": "Import", - "name": "CoreGraphics", - "printedName": "CoreGraphics", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, { "kind": "Import", "name": "Foundation", @@ -7275,69 +12972,269 @@ "moduleName": "Sentry" }, { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", + "kind": "TypeDecl", + "name": "SentryCurrentDateProvider", + "printedName": "SentryCurrentDateProvider", + "children": [ + { + "kind": "Function", + "name": "date", + "printedName": "date()", + "children": [ + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)date", + "mangledName": "$s6Sentry0A19CurrentDateProviderP4date10Foundation0C0VyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "timezoneOffset", + "printedName": "timezoneOffset()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)timezoneOffset", + "mangledName": "$s6Sentry0A19CurrentDateProviderP14timezoneOffsetSiyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "systemTime", + "printedName": "systemTime()", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt64", + "printedName": "Swift.UInt64", + "usr": "s:s6UInt64V" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)systemTime", + "mangledName": "$s6Sentry0A19CurrentDateProviderP10systemTimes6UInt64VyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "systemUptime", + "printedName": "systemUptime()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)systemUptime", + "mangledName": "$s6Sentry0A19CurrentDateProviderP12systemUptimeSdyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider", + "mangledName": "$s6Sentry0A19CurrentDateProviderP", "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", "declAttributes": [ - "ImplementationOnly" + "AccessControl", + "SPIAccessControl", + "ObjC", + "RawDocComment" + ], + "spi_group_names": [ + "Private" ] }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "TypeDecl", - "name": "SentryEventDecoder", - "printedName": "SentryEventDecoder", + "name": "SentryDefaultCurrentDateProvider", + "printedName": "SentryDefaultCurrentDateProvider", "children": [ { "kind": "Function", - "name": "decodeEvent", - "printedName": "decodeEvent(jsonData:)", + "name": "date", + "printedName": "date()", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "Sentry.Event?", - "children": [ - { - "kind": "TypeNominal", - "name": "Event", - "printedName": "Sentry.Event", - "usr": "c:objc(cs)SentryEvent" - } - ], - "usr": "s:Sq" - }, + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)date", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC4date10Foundation0D0VyF", + "moduleName": "Sentry", + "objc_name": "date", + "declAttributes": [ + "ObjC", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "timezoneOffset", + "printedName": "timezoneOffset()", + "children": [ { "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder(cm)decodeEventWithJsonData:", - "mangledName": "$s6Sentry0A12EventDecoderC06decodeB08jsonDataSo0aB0CSg10Foundation0F0V_tFZ", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)timezoneOffset", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC14timezoneOffsetSiyF", + "moduleName": "Sentry", + "objc_name": "timezoneOffset", + "declAttributes": [ + "ObjC", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "systemTime", + "printedName": "systemTime()", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt64", + "printedName": "Swift.UInt64", + "usr": "s:s6UInt64V" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)systemTime", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC10systemTimes6UInt64VyF", + "moduleName": "Sentry", + "objc_name": "systemTime", + "declAttributes": [ + "ObjC", + "AccessControl", + "RawDocComment" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "systemUptime", + "printedName": "systemUptime()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)systemUptime", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC12systemUptimeSdyF", + "moduleName": "Sentry", + "objc_name": "systemUptime", + "declAttributes": [ + "ObjC", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getAbsoluteTime", + "printedName": "getAbsoluteTime()", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt64", + "printedName": "Swift.UInt64", + "usr": "s:s6UInt64V" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(cm)getAbsoluteTime", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC15getAbsoluteTimes6UInt64VyFZ", "moduleName": "Sentry", "static": true, "declAttributes": [ "Final", "AccessControl", - "SPIAccessControl", "ObjC" ], "spi_group_names": [ @@ -7352,14 +13249,14 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryEventDecoder", - "printedName": "Sentry.SentryEventDecoder", - "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder" + "name": "SentryDefaultCurrentDateProvider", + "printedName": "Sentry.SentryDefaultCurrentDateProvider", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder(im)init", - "mangledName": "$s6Sentry0A12EventDecoderCACycfc", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)init", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderCACycfc", "moduleName": "Sentry", "overriding": true, "implicit": true, @@ -7369,24 +13266,38 @@ "ObjC", "Override" ], + "spi_group_names": [ + "Private" + ], "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder", - "mangledName": "$s6Sentry0A12EventDecoderC", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC", "moduleName": "Sentry", "declAttributes": [ "AccessControl", + "SPIAccessControl", "ObjCMembers", "ObjC" ], + "spi_group_names": [ + "Private" + ], "superclassUsr": "c:objc(cs)NSObject", "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], "conformances": [ + { + "kind": "Conformance", + "name": "SentryCurrentDateProvider", + "printedName": "SentryCurrentDateProvider", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider", + "mangledName": "$s6Sentry0A19CurrentDateProviderP" + }, { "kind": "Conformance", "name": "Equatable", @@ -7438,13 +13349,6 @@ } ] }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "Import", "name": "UIKit", @@ -7454,484 +13358,304 @@ }, { "kind": "TypeDecl", - "name": "SentryUserFeedbackConfiguration", - "printedName": "SentryUserFeedbackConfiguration", + "name": "SentryViewRenderer", + "printedName": "SentryViewRenderer", "children": [ { - "kind": "Var", - "name": "animations", - "printedName": "animations", + "kind": "Function", + "name": "render", + "printedName": "render(view:)", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)animations", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvp", - "moduleName": "Sentry", - "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)animations", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setAnimations:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC10animationsSbvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "UIView", + "printedName": "UIKit.UIView", + "usr": "c:objc(cs)UIView" } - ] - }, + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer(im)renderWithView:", + "mangledName": "$s6Sentry0A12ViewRendererP6render4viewSo7UIImageCSo6UIViewC_tF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryViewRenderer>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer", + "mangledName": "$s6Sentry0A12ViewRendererP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryProfileOptions", + "printedName": "SentryProfileOptions", + "children": [ { - "kind": "Var", - "name": "configureWidget", - "printedName": "configureWidget", + "kind": "TypeDecl", + "name": "SentryProfileLifecycle", + "printedName": "SentryProfileLifecycle", "children": [ { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "kind": "Var", + "name": "manual", + "printedName": "manual", "children": [ { "kind": "TypeFunc", "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "printedName": "(Sentry.SentryProfileOptions.SentryProfileLifecycle.Type) -> Sentry.SentryProfileOptions.SentryProfileLifecycle", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" }, { "kind": "TypeNominal", - "name": "SentryUserFeedbackWidgetConfiguration", - "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureWidget", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvp", - "moduleName": "Sentry", - "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "name": "Metatype", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle.Type", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackWidgetConfiguration", - "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ] } - ], - "usr": "s:Sq" + ] } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureWidget", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvg", + "declKind": "EnumElement", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO6manualyA2EmF", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO6manualyA2EmF", "moduleName": "Sentry", - "implicit": true, "declAttributes": [ + "RawDocComment", "ObjC" ], - "accessorKind": "get" + "fixedbinaryorder": 0 }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "Var", + "name": "trace", + "printedName": "trace", "children": [ { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryProfileOptions.SentryProfileLifecycle.Type) -> Sentry.SentryProfileOptions.SentryProfileLifecycle", "children": [ { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "kind": "TypeNominal", + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle.Type", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackWidgetConfiguration", - "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ] } - ], - "usr": "s:Sq" + ] } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureWidget:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvs", + "declKind": "EnumElement", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO5traceyA2EmF", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO5traceyA2EmF", "moduleName": "Sentry", - "implicit": true, "declAttributes": [ + "RawDocComment", "ObjC" ], - "accessorKind": "set" + "fixedbinaryorder": 1 }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "useShakeGesture", - "printedName": "useShakeGesture", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)useShakeGesture", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvp", - "moduleName": "Sentry", - "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ + "name": "Optional", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle?", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" + } + ], + "usr": "s:Sq" + }, { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)useShakeGesture", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvg", + "declKind": "Constructor", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueAESgSi_tcfc", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueAESgSi_tcfc", "moduleName": "Sentry", "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "init_kind": "Designated" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setUseShakeGesture:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvs", + "declKind": "Var", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivp", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivp", "moduleName": "Sentry", "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ + "accessors": [ { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivg", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivg", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "get" } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "showFormForScreenshots", - "printedName": "showFormForScreenshots", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + ] } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)showFormForScreenshots", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvp", + "declKind": "Enum", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO", "moduleName": "Sentry", "declAttributes": [ - "HasInitialValue", - "HasStorage", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, - "accessors": [ + "enumRawTypeName": "Int", + "conformances": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)showFormForScreenshots", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setShowFormForScreenshots:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", "children": [ { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" + "usr": "s:SY", + "mangledName": "$sSY" } ] }, { "kind": "Var", - "name": "customButton", - "printedName": "customButton", + "name": "lifecycle", + "printedName": "lifecycle", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "UIKit.UIButton?", - "children": [ - { - "kind": "TypeNominal", - "name": "UIButton", - "printedName": "UIKit.UIButton", - "usr": "c:objc(cs)UIButton" - } - ], - "usr": "s:Sq" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)customButton", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)lifecycle", + "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -7949,22 +13673,14 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "UIKit.UIButton?", - "children": [ - { - "kind": "TypeNominal", - "name": "UIButton", - "printedName": "UIKit.UIButton", - "usr": "c:objc(cs)UIButton" - } - ], - "usr": "s:Sq" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)customButton", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)lifecycle", + "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -7984,22 +13700,14 @@ }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "UIKit.UIButton?", - "children": [ - { - "kind": "TypeNominal", - "name": "UIButton", - "printedName": "UIKit.UIButton", - "usr": "c:objc(cs)UIButton" - } - ], - "usr": "s:Sq" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setCustomButton:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setLifecycle:", + "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8019,53 +13727,29 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvM", + "usr": "s:6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvM", + "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvM", "moduleName": "Sentry", "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], "accessorKind": "_modify" } ] }, { - "kind": "Var", - "name": "configureForm", - "printedName": "configureForm", + "kind": "Var", + "name": "sessionSampleRate", + "printedName": "sessionSampleRate", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackFormConfiguration", - "printedName": "Sentry.SentryUserFeedbackFormConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureForm", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)sessionSampleRate", + "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -8083,34 +13767,14 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackFormConfiguration", - "printedName": "Sentry.SentryUserFeedbackFormConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureForm", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)sessionSampleRate", + "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8130,34 +13794,14 @@ }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackFormConfiguration", - "printedName": "Sentry.SentryUserFeedbackFormConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureForm:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setSessionSampleRate:", + "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8177,54 +13821,29 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvM", + "usr": "s:6Sentry0A14ProfileOptionsC17sessionSampleRateSfvM", + "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvM", "moduleName": "Sentry", "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], "accessorKind": "_modify" } ] }, { "kind": "Var", - "name": "tags", - "printedName": "tags", + "name": "profileAppStarts", + "printedName": "profileAppStarts", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "[Swift.String : Any]?", - "children": [ - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ], - "usr": "s:Sq" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)tags", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)profileAppStarts", + "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -8242,35 +13861,14 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "[Swift.String : Any]?", - "children": [ - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ], - "usr": "s:Sq" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)tags", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)profileAppStarts", + "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8290,35 +13888,14 @@ }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "[Swift.String : Any]?", - "children": [ - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ], - "usr": "s:Sq" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setTags:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setProfileAppStarts:", + "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8338,569 +13915,724 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvM", + "usr": "s:6Sentry0A14ProfileOptionsC16profileAppStartsSbvM", + "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvM", "moduleName": "Sentry", "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], "accessorKind": "_modify" } ] }, { - "kind": "Var", - "name": "onFormOpen", - "printedName": "onFormOpen", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", + "name": "SentryProfileOptions", + "printedName": "Sentry.SentryProfileOptions", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)init", + "mangledName": "$s6Sentry0A14ProfileOptionsCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions", + "mangledName": "$s6Sentry0A14ProfileOptionsC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjCMembers", + "RawDocComment", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "HTTPHeaderSanitizer", + "printedName": "HTTPHeaderSanitizer", + "children": [ + { + "kind": "Function", + "name": "sanitizeHeaders", + "printedName": "sanitizeHeaders(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", "children": [ { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "usr": "s:Sq" + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer(cm)sanitizeHeaders:", + "mangledName": "$s6Sentry19HTTPHeaderSanitizerC15sanitizeHeadersySDyS2SGAEFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "HTTPHeaderSanitizer", + "printedName": "Sentry.HTTPHeaderSanitizer", + "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer(im)init", + "mangledName": "$s6Sentry19HTTPHeaderSanitizerCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer", + "mangledName": "$s6Sentry19HTTPHeaderSanitizerC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryViewRendererV2", + "printedName": "SentryViewRendererV2", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(enableFastViewRendering:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryViewRendererV2", + "printedName": "Sentry.SentryViewRendererV2", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onFormOpen", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvp", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)initWithEnableFastViewRendering:", + "mangledName": "$s6Sentry0A14ViewRendererV2C010enableFastB9RenderingACSb_tcfc", "moduleName": "Sentry", "declAttributes": [ - "HasInitialValue", - "HasStorage", "AccessControl", - "RawDocComment", "ObjC" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onFormOpen", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "render", + "printedName": "render(view:)", + "children": [ { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnFormOpen:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "TypeNominal", + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "UIView", + "printedName": "UIKit.UIView", + "usr": "c:objc(cs)UIView" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)renderWithView:", + "mangledName": "$s6Sentry0A14ViewRendererV2C6render4viewSo7UIImageCSo6UIViewC_tF", + "moduleName": "Sentry", + "objc_name": "renderWithView:", + "declAttributes": [ + "ObjC", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "onFormClose", - "printedName": "onFormClose", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" + "name": "SentryViewRendererV2", + "printedName": "Sentry.SentryViewRendererV2", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onFormClose", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvp", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)init", + "mangledName": "$s6Sentry0A14ViewRendererV2CACycfc", "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" + "Dynamic", + "ObjC", + "Override" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onFormClose", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnFormClose:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" - } - ] + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2", + "mangledName": "$s6Sentry0A14ViewRendererV2C", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "SentryViewRenderer", + "printedName": "SentryViewRenderer", + "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer", + "mangledName": "$s6Sentry0A12ViewRendererP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryId", + "printedName": "SentryId", + "children": [ { "kind": "Var", - "name": "onSubmitSuccess", - "printedName": "onSubmitSuccess", + "name": "empty", + "printedName": "empty", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "(([Swift.String : Any]) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "([Swift.String : Any]) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ] - } - ], - "usr": "s:Sq" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onSubmitSuccess", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryId(cpy)empty", + "mangledName": "$s6Sentry0A2IdC5emptyACvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ "HasInitialValue", + "Final", "HasStorage", "AccessControl", "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(([Swift.String : Any]) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "([Swift.String : Any]) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onSubmitSuccess", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, + "ObjC" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ { "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(([Swift.String : Any]) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "([Swift.String : Any]) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ] - } - ], - "usr": "s:Sq" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnSubmitSuccess:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryId(cm)empty", + "mangledName": "$s6Sentry0A2IdC5emptyACvgZ", "moduleName": "Sentry", + "static": true, "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "sentryIdString", + "printedName": "sentryIdString", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryId(py)sentryIdString", + "mangledName": "$s6Sentry0A2IdC06sentryB6StringSSvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "accessors": [ { "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvM", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)sentryIdString", + "mangledName": "$s6Sentry0A2IdC06sentryB6StringSSvg", "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", "declAttributes": [ - "Available" + "Final", + "ObjC" ], - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { - "kind": "Var", - "name": "onSubmitError", - "printedName": "onSubmitError", + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)init", + "mangledName": "$s6Sentry0A2IdCACycfc", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override", + "AccessControl", + "RawDocComment" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(uuid:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "UUID", + "printedName": "Foundation.UUID", + "usr": "s:10Foundation4UUIDV" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)initWithUuid:", + "mangledName": "$s6Sentry0A2IdC4uuidAC10Foundation4UUIDV_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(uuidString:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)initWithUUIDString:", + "mangledName": "$s6Sentry0A2IdC10uuidStringACSS_tcfc", + "moduleName": "Sentry", + "objc_name": "initWithUUIDString:", + "declAttributes": [ + "AccessControl", + "ObjC", + "RawDocComment" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "isEqual", + "printedName": "isEqual(_:)", "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, { "kind": "TypeNominal", "name": "Optional", - "printedName": "((Swift.Error) -> ())?", + "printedName": "Any?", "children": [ { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Swift.Error) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Error", - "printedName": "Swift.Error", - "usr": "s:s5ErrorP" - } - ] + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } ], "usr": "s:Sq" } ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)isEqual:", + "mangledName": "$s6Sentry0A2IdC7isEqualySbypSgF", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "isEqual:", + "declAttributes": [ + "Final", + "ObjC", + "AccessControl", + "Override" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onSubmitError", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryId(py)description", + "mangledName": "$s6Sentry0A2IdC11descriptionSSvp", "moduleName": "Sentry", + "overriding": true, + "objc_name": "description", "declAttributes": [ - "HasInitialValue", - "HasStorage", + "Final", + "ObjC", "AccessControl", - "RawDocComment", - "ObjC" + "Override" ], - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -8909,155 +14641,190 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Swift.Error) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Swift.Error) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Error", - "printedName": "Swift.Error", - "usr": "s:s5ErrorP" - } - ] - } - ], - "usr": "s:Sq" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onSubmitError", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)description", + "mangledName": "$s6Sentry0A2IdC11descriptionSSvg", "moduleName": "Sentry", - "implicit": true, + "overriding": true, + "objc_name": "description", "declAttributes": [ + "Final", "ObjC" ], "accessorKind": "get" - }, + } + ] + }, + { + "kind": "Var", + "name": "hash", + "printedName": "hash", + "children": [ { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Swift.Error) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Swift.Error) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Error", - "printedName": "Swift.Error", - "usr": "s:s5ErrorP" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnSubmitError:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryId(py)hash", + "mangledName": "$s6Sentry0A2IdC4hashSivp", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "hash", + "declAttributes": [ + "Final", + "ObjC", + "AccessControl", + "Override" + ], + "accessors": [ { "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvM", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)hash", + "mangledName": "$s6Sentry0A2IdC4hashSivg", "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", + "overriding": true, + "objc_name": "hash", "declAttributes": [ - "Available" + "Final", + "ObjC" ], - "accessorKind": "_modify" + "accessorKind": "get" } ] + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryId", + "mangledName": "$s6Sentry0A2IdC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "Final", + "ObjCMembers", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryFramesDelayResult", + "printedName": "SentryFramesDelayResult", + "children": [ { "kind": "Var", - "name": "configureTheme", - "printedName": "configureTheme", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "delayDuration", + "printedName": "delayDuration", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureTheme", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(py)delayDuration", + "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDurationSdvp", "moduleName": "Sentry", "declAttributes": [ - "HasInitialValue", + "Final", "HasStorage", "AccessControl", "RawDocComment", "ObjC" ], + "spi_group_names": [ + "Private" + ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -9067,155 +14834,53 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureTheme", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureTheme:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)delayDuration", + "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDurationSdvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" + "spi_group_names": [ + "Private" ], - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "configureDarkTheme", - "printedName": "configureDarkTheme", + "name": "framesContributingToDelayCount", + "printedName": "framesContributingToDelayCount", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureDarkTheme", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(py)framesContributingToDelayCount", + "mangledName": "$s6Sentry0A17FramesDelayResultC020framesContributingToC5CountSuvp", "moduleName": "Sentry", "declAttributes": [ - "HasInitialValue", + "Final", "HasStorage", "AccessControl", - "RawDocComment", "ObjC" ], + "spi_group_names": [ + "Private" + ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -9225,111 +14890,63 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureDarkTheme", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)framesContributingToDelayCount", + "mangledName": "$s6Sentry0A17FramesDelayResultC020framesContributingToC5CountSuvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], + "spi_group_names": [ + "Private" + ], "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(delayDuration:framesContributingToDelayCount:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryFramesDelayResult", + "printedName": "Sentry.SentryFramesDelayResult", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureDarkTheme:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" } - ] + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)initWithDelayDuration:framesContributingToDelayCount:", + "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDuration020framesContributingToC5CountACSd_Sutcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" }, { "kind": "Constructor", @@ -9338,14 +14955,14 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryUserFeedbackConfiguration", - "printedName": "Sentry.SentryUserFeedbackConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration" + "name": "SentryFramesDelayResult", + "printedName": "Sentry.SentryFramesDelayResult", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)init", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationCACycfc", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)init", + "mangledName": "$s6Sentry0A17FramesDelayResultCACycfc", "moduleName": "Sentry", "overriding": true, "implicit": true, @@ -9355,23 +14972,26 @@ "ObjC", "Override" ], + "spi_group_names": [ + "Private" + ], "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult", + "mangledName": "$s6Sentry0A17FramesDelayResultC", "moduleName": "Sentry", - "intro_iOS": "13.0", "declAttributes": [ "AccessControl", + "SPIAccessControl", "ObjCMembers", - "Available", - "RawDocComment", "ObjC" ], + "spi_group_names": [ + "Private" + ], "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], @@ -9436,56 +15056,34 @@ }, { "kind": "TypeDecl", - "name": "SentryCurrentDateProvider", - "printedName": "SentryCurrentDateProvider", + "name": "SentryANRTracker", + "printedName": "SentryANRTracker", "children": [ { "kind": "Function", - "name": "date", - "printedName": "date()", + "name": "add", + "printedName": "add(listener:)", "children": [ { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)date", - "mangledName": "$s6Sentry0A19CurrentDateProviderP4date10Foundation0C0VyF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "timezoneOffset", - "printedName": "timezoneOffset()", - "children": [ + "name": "Void", + "printedName": "()" + }, { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "SentryANRTrackerDelegate", + "printedName": "Sentry.SentryANRTrackerDelegate", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)timezoneOffset", - "mangledName": "$s6Sentry0A19CurrentDateProviderP14timezoneOffsetSiyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)addListener:", + "mangledName": "$s6Sentry0A10ANRTrackerP3add8listeneryAA0aB8Delegate_p_tF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", + "sugared_genericSig": "", "protocolReq": true, + "objc_name": "addListener:", "declAttributes": [ "ObjC" ], @@ -9497,23 +15095,29 @@ }, { "kind": "Function", - "name": "systemTime", - "printedName": "systemTime()", + "name": "remove", + "printedName": "remove(listener:)", "children": [ { "kind": "TypeNominal", - "name": "UInt64", - "printedName": "Swift.UInt64", - "usr": "s:s6UInt64V" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryANRTrackerDelegate", + "printedName": "Sentry.SentryANRTrackerDelegate", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)systemTime", - "mangledName": "$s6Sentry0A19CurrentDateProviderP10systemTimes6UInt64VyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)removeListener:", + "mangledName": "$s6Sentry0A10ANRTrackerP6remove8listeneryAA0aB8Delegate_p_tF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", + "sugared_genericSig": "", "protocolReq": true, + "objc_name": "removeListener:", "declAttributes": [ "ObjC" ], @@ -9525,24 +15129,24 @@ }, { "kind": "Function", - "name": "systemUptime", - "printedName": "systemUptime()", + "name": "clear", + "printedName": "clear()", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)systemUptime", - "mangledName": "$s6Sentry0A19CurrentDateProviderP12systemUptimeSdyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)clear", + "mangledName": "$s6Sentry0A10ANRTrackerP5clearyyF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ + "RawDocComment", "ObjC" ], "spi_group_names": [ @@ -9553,109 +15157,188 @@ } ], "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider", - "mangledName": "$s6Sentry0A19CurrentDateProviderP", + "usr": "c:@M@Sentry@objc(pl)SentryANRTracker", + "mangledName": "$s6Sentry0A10ANRTrackerP", "moduleName": "Sentry", "genericSig": "<τ_0_0 : AnyObject>", "sugared_genericSig": "", "declAttributes": [ "AccessControl", "SPIAccessControl", - "ObjC", - "RawDocComment" + "ObjC" ], "spi_group_names": [ "Private" ] }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "TypeDecl", - "name": "SentryDefaultCurrentDateProvider", - "printedName": "SentryDefaultCurrentDateProvider", + "name": "SentryANRTrackerDelegate", + "printedName": "SentryANRTrackerDelegate", "children": [ { "kind": "Function", - "name": "date", - "printedName": "date()", + "name": "anrDetected", + "printedName": "anrDetected(type:)", "children": [ { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryANRType", + "printedName": "Sentry.SentryANRType", + "usr": "c:@M@Sentry@E@SentryANRType" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)date", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC4date10Foundation0D0VyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate(im)anrDetectedWithType:", + "mangledName": "$s6Sentry0A18ANRTrackerDelegateP11anrDetected4typeyAA0A7ANRTypeO_tF", "moduleName": "Sentry", - "objc_name": "date", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTrackerDelegate>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "ObjC", - "AccessControl" + "ObjC" ], "spi_group_names": [ "Private" ], + "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "timezoneOffset", - "printedName": "timezoneOffset()", + "name": "anrStopped", + "printedName": "anrStopped(result:)", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.SentryANRStoppedResult?", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryANRStoppedResult", + "printedName": "Sentry.SentryANRStoppedResult", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" + } + ], + "usr": "s:Sq" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)timezoneOffset", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC14timezoneOffsetSiyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate(im)anrStoppedWithResult:", + "mangledName": "$s6Sentry0A18ANRTrackerDelegateP10anrStopped6resultyAA0A16ANRStoppedResultCSg_tF", "moduleName": "Sentry", - "objc_name": "timezoneOffset", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTrackerDelegate>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "ObjC", - "AccessControl" + "ObjC" ], "spi_group_names": [ "Private" ], + "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" - }, + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate", + "mangledName": "$s6Sentry0A18ANRTrackerDelegateP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjC", + "RawDocComment" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "TypeDecl", + "name": "SentryANRStoppedResult", + "printedName": "SentryANRStoppedResult", + "children": [ { - "kind": "Function", - "name": "systemTime", - "printedName": "systemTime()", + "kind": "Var", + "name": "minDuration", + "printedName": "minDuration", "children": [ { "kind": "TypeNominal", - "name": "UInt64", - "printedName": "Swift.UInt64", - "usr": "s:s6UInt64V" + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)systemTime", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC10systemTimes6UInt64VyF", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(py)minDuration", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDurationSdvp", "moduleName": "Sentry", - "objc_name": "systemTime", "declAttributes": [ - "ObjC", + "Final", + "HasStorage", "AccessControl", - "RawDocComment" + "ObjC" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)minDuration", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] }, { - "kind": "Function", - "name": "systemUptime", - "printedName": "systemUptime()", + "kind": "Var", + "name": "maxDuration", + "printedName": "maxDuration", "children": [ { "kind": "TypeNominal", @@ -9664,46 +15347,86 @@ "usr": "s:Sd" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)systemUptime", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC12systemUptimeSdyF", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(py)maxDuration", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11maxDurationSdvp", "moduleName": "Sentry", - "objc_name": "systemUptime", "declAttributes": [ - "ObjC", - "AccessControl" + "Final", + "HasStorage", + "AccessControl", + "ObjC" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)maxDuration", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11maxDurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] }, { - "kind": "Function", - "name": "getAbsoluteTime", - "printedName": "getAbsoluteTime()", + "kind": "Constructor", + "name": "init", + "printedName": "init(minDuration:maxDuration:)", "children": [ { "kind": "TypeNominal", - "name": "UInt64", - "printedName": "Swift.UInt64", - "usr": "s:s6UInt64V" + "name": "SentryANRStoppedResult", + "printedName": "Sentry.SentryANRStoppedResult", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(cm)getAbsoluteTime", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC15getAbsoluteTimes6UInt64VyFZ", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)initWithMinDuration:maxDuration:", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDuration03maxE0ACSd_Sdtcfc", "moduleName": "Sentry", - "static": true, "declAttributes": [ - "Final", "AccessControl", "ObjC" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "init_kind": "Designated" }, { "kind": "Constructor", @@ -9712,14 +15435,14 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryDefaultCurrentDateProvider", - "printedName": "Sentry.SentryDefaultCurrentDateProvider", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider" + "name": "SentryANRStoppedResult", + "printedName": "Sentry.SentryANRStoppedResult", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)init", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderCACycfc", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)init", + "mangledName": "$s6Sentry0A16ANRStoppedResultCACycfc", "moduleName": "Sentry", "overriding": true, "implicit": true, @@ -9736,8 +15459,8 @@ } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult", + "mangledName": "$s6Sentry0A16ANRStoppedResultC", "moduleName": "Sentry", "declAttributes": [ "AccessControl", @@ -9749,18 +15472,10 @@ "Private" ], "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], "conformances": [ - { - "kind": "Conformance", - "name": "SentryCurrentDateProvider", - "printedName": "SentryCurrentDateProvider", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider", - "mangledName": "$s6Sentry0A19CurrentDateProviderP" - }, { "kind": "Conformance", "name": "Equatable", @@ -9814,73 +15529,15 @@ }, { "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryViewRenderer", - "printedName": "SentryViewRenderer", - "children": [ - { - "kind": "Function", - "name": "render", - "printedName": "render(view:)", - "children": [ - { - "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" - }, - { - "kind": "TypeNominal", - "name": "UIView", - "printedName": "UIKit.UIView", - "usr": "c:objc(cs)UIView" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer(im)renderWithView:", - "mangledName": "$s6Sentry0A12ViewRendererP6render4viewSo7UIImageCSo6UIViewC_tF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryViewRenderer>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - } - ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer", - "mangledName": "$s6Sentry0A12ViewRendererP", "moduleName": "Sentry", - "genericSig": "<τ_0_0 : AnyObject>", - "sugared_genericSig": "", "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ImplementationOnly", + "RawDocComment" ] }, - { - "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "Import", "name": "Foundation", @@ -9890,338 +15547,97 @@ }, { "kind": "TypeDecl", - "name": "SentryProfileOptions", - "printedName": "SentryProfileOptions", + "name": "SentrySDK", + "printedName": "SentrySDK", "children": [ { - "kind": "TypeDecl", - "name": "SentryProfileLifecycle", - "printedName": "SentryProfileLifecycle", + "kind": "Var", + "name": "span", + "printedName": "span", "children": [ { - "kind": "Var", - "name": "manual", - "printedName": "manual", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryProfileOptions.SentryProfileLifecycle.Type) -> Sentry.SentryProfileOptions.SentryProfileLifecycle", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO6manualyA2EmF", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO6manualyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 0 - }, - { - "kind": "Var", - "name": "trace", - "printedName": "trace", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryProfileOptions.SentryProfileLifecycle.Type) -> Sentry.SentryProfileOptions.SentryProfileLifecycle", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO5traceyA2EmF", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO5traceyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 1 - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init(rawValue:)", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle?", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ], - "usr": "s:Sq" - }, - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ], - "declKind": "Constructor", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueAESgSi_tcfc", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueAESgSi_tcfc", - "moduleName": "Sentry", - "implicit": true, - "init_kind": "Designated" - }, - { - "kind": "Var", - "name": "rawValue", - "printedName": "rawValue", + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.Span?", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" } ], - "declKind": "Var", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivp", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivp", - "moduleName": "Sentry", - "implicit": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivg", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivg", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "get" - } - ] + "usr": "s:Sq" } ], - "declKind": "Enum", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)span", + "mangledName": "$s6Sentry0A3SDKC4spanSo0A4Span_pSgvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ + "Final", "AccessControl", "ObjC", "RawDocComment" - ], - "enumRawTypeName": "Int", - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "RawRepresentable", - "printedName": "RawRepresentable", - "children": [ - { - "kind": "TypeWitness", - "name": "RawValue", - "printedName": "RawValue", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ] - } - ], - "usr": "s:SY", - "mangledName": "$sSY" - } - ] - }, - { - "kind": "Var", - "name": "lifecycle", - "printedName": "lifecycle", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)lifecycle", - "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvp", - "moduleName": "Sentry", - "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)lifecycle", - "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setLifecycle:", - "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + ], + "accessors": [ { "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "Optional", + "printedName": "Sentry.Span?", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + } + ], + "usr": "s:Sq" } ], "declKind": "Accessor", - "usr": "s:6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvM", - "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvM", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)span", + "mangledName": "$s6Sentry0A3SDKC4spanSo0A4Span_pSgvgZ", "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "static": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "sessionSampleRate", - "printedName": "sessionSampleRate", + "name": "isEnabled", + "printedName": "isEnabled", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)sessionSampleRate", - "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)isEnabled", + "mangledName": "$s6Sentry0A3SDKC9isEnabledSbvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ - "HasInitialValue", - "HasStorage", + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -10230,92 +15646,96 @@ "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)sessionSampleRate", - "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)isEnabled", + "mangledName": "$s6Sentry0A3SDKC9isEnabledSbvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ + "Final", "ObjC" ], "accessorKind": "get" - }, + } + ] + }, + { + "kind": "Var", + "name": "replay", + "printedName": "replay", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayApi", + "printedName": "Sentry.SentryReplayApi", + "usr": "c:objc(cs)SentryReplayApi" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)replay", + "mangledName": "$s6Sentry0A3SDKC6replaySo0A9ReplayApiCvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "accessors": [ { "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "SentryReplayApi", + "printedName": "Sentry.SentryReplayApi", + "usr": "c:objc(cs)SentryReplayApi" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setSessionSampleRate:", - "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvs", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)replay", + "mangledName": "$s6Sentry0A3SDKC6replaySo0A9ReplayApiCvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A14ProfileOptionsC17sessionSampleRateSfvM", - "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "profileAppStarts", - "printedName": "profileAppStarts", + "name": "logger", + "printedName": "logger", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "SentryLogger", + "printedName": "Sentry.SentryLogger", + "usr": "c:@M@Sentry@objc(cs)SentryLogger" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)profileAppStarts", - "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)logger", + "mangledName": "$s6Sentry0A3SDKC6loggerAA0A6LoggerCvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ - "HasInitialValue", - "HasStorage", + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -10324,25 +15744,69 @@ "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "SentryLogger", + "printedName": "Sentry.SentryLogger", + "usr": "c:@M@Sentry@objc(cs)SentryLogger" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)profileAppStarts", - "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)logger", + "mangledName": "$s6Sentry0A3SDKC6loggerAA0A6LoggerCvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ + "Final", "ObjC" ], "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "start", + "printedName": "start(options:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "TypeNominal", + "name": "Options", + "printedName": "Sentry.Options", + "usr": "c:objc(cs)SentryOptions" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startWithOptions:", + "mangledName": "$s6Sentry0A3SDKC5start7optionsySo0A7OptionsC_tFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startWithOptions:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "start", + "printedName": "start(configureOptions:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Options) -> ()", "children": [ { "kind": "TypeNominal", @@ -10351,156 +15815,333 @@ }, { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Options", + "printedName": "Sentry.Options", + "usr": "c:objc(cs)SentryOptions" } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setProfileAppStarts:", - "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + ] + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startWithConfigureOptions:", + "mangledName": "$s6Sentry0A3SDKC5start16configureOptionsyySo0aE0Cc_tFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startWithConfigureOptions:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "capture", + "printedName": "capture(event:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "Event", + "printedName": "Sentry.Event", + "usr": "c:objc(cs)SentryEvent" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureEvent:", + "mangledName": "$s6Sentry0A3SDKC7capture5eventAA0A2IdCSo0A5EventC_tFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureEvent:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "capture", + "printedName": "capture(event:scope:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "Event", + "printedName": "Sentry.Event", + "usr": "c:objc(cs)SentryEvent" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureEvent:withScope:", + "mangledName": "$s6Sentry0A3SDKC7capture5event5scopeAA0A2IdCSo0A5EventC_So0A5ScopeCtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureEvent:withScope:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "capture", + "printedName": "capture(event:block:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "Event", + "printedName": "Sentry.Event", + "usr": "c:objc(cs)SentryEvent" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A14ProfileOptionsC16profileAppStartsSbvM", - "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + ] } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureEvent:withScopeBlock:", + "mangledName": "$s6Sentry0A3SDKC7capture5event5blockAA0A2IdCSo0A5EventC_ySo0A5ScopeCctFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureEvent:withScopeBlock:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(name:operation:)", "children": [ { "kind": "TypeNominal", - "name": "SentryProfileOptions", - "printedName": "Sentry.SentryProfileOptions", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions" + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)init", - "mangledName": "$s6Sentry0A14ProfileOptionsCACycfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithName:operation:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction4name9operationSo0A4Span_pSS_SStFZ", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", + "static": true, + "objc_name": "startTransactionWithName:operation:", "declAttributes": [ - "Dynamic", + "Final", + "AccessControl", + "DiscardableResult", "ObjC", - "Override" + "RawDocComment" ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions", - "mangledName": "$s6Sentry0A14ProfileOptionsC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "ObjCMembers", - "RawDocComment", - "ObjC" - ], - "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(name:operation:bindToScope:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithName:operation:bindToScope:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction4name9operation11bindToScopeSo0A4Span_pSS_SSSbtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startTransactionWithName:operation:bindToScope:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(transactionContext:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "TransactionContext", + "printedName": "Sentry.TransactionContext", + "usr": "c:objc(cs)SentryTransactionContext" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithContext:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction18transactionContextSo0A4Span_pSo0adF0C_tFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startTransactionWithContext:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(transactionContext:bindToScope:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "TransactionContext", + "printedName": "Sentry.TransactionContext", + "usr": "c:objc(cs)SentryTransactionContext" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithContext:bindToScope:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction18transactionContext11bindToScopeSo0A4Span_pSo0adF0C_SbtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startTransactionWithContext:bindToScope:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, - { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "HTTPHeaderSanitizer", - "printedName": "HTTPHeaderSanitizer", - "children": [ { "kind": "Function", - "name": "sanitizeHeaders", - "printedName": "sanitizeHeaders(_:)", + "name": "startTransaction", + "printedName": "startTransaction(transactionContext:bindToScope:customSamplingContext:)", "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "TransactionContext", + "printedName": "Sentry.TransactionContext", + "usr": "c:objc(cs)SentryTransactionContext" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, { "kind": "TypeNominal", "name": "Dictionary", - "printedName": "[Swift.String : Swift.String]", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", @@ -10510,17 +16151,49 @@ }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "ProtocolComposition", + "printedName": "Any" } ], "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithContext:bindToScope:customSamplingContext:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction18transactionContext11bindToScope014customSamplingF0So0A4Span_pSo0adF0C_SbSDySSypGtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startTransactionWithContext:bindToScope:customSamplingContext:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(transactionContext:customSamplingContext:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "TransactionContext", + "printedName": "Sentry.TransactionContext", + "usr": "c:objc(cs)SentryTransactionContext" }, { "kind": "TypeNominal", "name": "Dictionary", - "printedName": "[Swift.String : Swift.String]", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", @@ -10530,381 +16203,285 @@ }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "ProtocolComposition", + "printedName": "Any" } ], "usr": "s:SD" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer(cm)sanitizeHeaders:", - "mangledName": "$s6Sentry19HTTPHeaderSanitizerC15sanitizeHeadersySDyS2SGAEFZ", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithContext:customSamplingContext:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction18transactionContext014customSamplingF0So0A4Span_pSo0adF0C_SDySSypGtFZ", "moduleName": "Sentry", "static": true, + "objc_name": "startTransactionWithContext:customSamplingContext:", "declAttributes": [ "Final", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "DiscardableResult", + "ObjC", + "RawDocComment" ], "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "capture", + "printedName": "capture(error:)", "children": [ { "kind": "TypeNominal", - "name": "HTTPHeaderSanitizer", - "printedName": "Sentry.HTTPHeaderSanitizer", - "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer(im)init", - "mangledName": "$s6Sentry19HTTPHeaderSanitizerCACycfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureError:", + "mangledName": "$s6Sentry0A3SDKC7capture5errorAA0A2IdCs5Error_p_tFZ", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", + "static": true, + "objc_name": "captureError:", "declAttributes": [ - "Dynamic", + "Final", + "AccessControl", + "DiscardableResult", "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" + "RawDocComment" ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer", - "mangledName": "$s6Sentry19HTTPHeaderSanitizerC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryViewRendererV2", - "printedName": "SentryViewRendererV2", - "children": [ - { - "kind": "Constructor", - "name": "init", - "printedName": "init(enableFastViewRendering:)", + "kind": "Function", + "name": "capture", + "printedName": "capture(error:scope:)", "children": [ { "kind": "TypeNominal", - "name": "SentryViewRendererV2", - "printedName": "Sentry.SentryViewRendererV2", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" }, { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)initWithEnableFastViewRendering:", - "mangledName": "$s6Sentry0A14ViewRendererV2C010enableFastB9RenderingACSb_tcfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureError:withScope:", + "mangledName": "$s6Sentry0A3SDKC7capture5error5scopeAA0A2IdCs5Error_p_So0A5ScopeCtFZ", "moduleName": "Sentry", + "static": true, + "objc_name": "captureError:withScope:", "declAttributes": [ + "Final", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "DiscardableResult", + "ObjC", + "RawDocComment" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "render", - "printedName": "render(view:)", + "name": "capture", + "printedName": "capture(error:block:)", "children": [ { "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" }, { "kind": "TypeNominal", - "name": "UIView", - "printedName": "UIKit.UIView", - "usr": "c:objc(cs)UIView" + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" + } + ] } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)renderWithView:", - "mangledName": "$s6Sentry0A14ViewRendererV2C6render4viewSo7UIImageCSo6UIViewC_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureError:withScopeBlock:", + "mangledName": "$s6Sentry0A3SDKC7capture5error5blockAA0A2IdCs5Error_p_ySo0A5ScopeCctFZ", "moduleName": "Sentry", - "objc_name": "renderWithView:", + "static": true, + "objc_name": "captureError:withScopeBlock:", "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", "ObjC", - "AccessControl" - ], - "spi_group_names": [ - "Private" + "RawDocComment" ], "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "capture", + "printedName": "capture(exception:)", "children": [ { "kind": "TypeNominal", - "name": "SentryViewRendererV2", - "printedName": "Sentry.SentryViewRendererV2", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "NSException", + "printedName": "Foundation.NSException", + "usr": "c:objc(cs)NSException" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)init", - "mangledName": "$s6Sentry0A14ViewRendererV2CACycfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureException:", + "mangledName": "$s6Sentry0A3SDKC7capture9exceptionAA0A2IdCSo11NSExceptionC_tFZ", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", + "static": true, + "objc_name": "captureException:", "declAttributes": [ - "Dynamic", + "Final", + "AccessControl", + "DiscardableResult", "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" + "RawDocComment" ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2", - "mangledName": "$s6Sentry0A14ViewRendererV2C", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "SentryViewRenderer", - "printedName": "SentryViewRenderer", - "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer", - "mangledName": "$s6Sentry0A12ViewRendererP" - }, - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryId", - "printedName": "SentryId", - "children": [ - { - "kind": "Var", - "name": "empty", - "printedName": "empty", + "kind": "Function", + "name": "capture", + "printedName": "capture(exception:scope:)", "children": [ { "kind": "TypeNominal", "name": "SentryId", "printedName": "Sentry.SentryId", "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "NSException", + "printedName": "Foundation.NSException", + "usr": "c:objc(cs)NSException" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryId(cpy)empty", - "mangledName": "$s6Sentry0A2IdC5emptyACvpZ", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureException:withScope:", + "mangledName": "$s6Sentry0A3SDKC7capture9exception5scopeAA0A2IdCSo11NSExceptionC_So0A5ScopeCtFZ", "moduleName": "Sentry", "static": true, + "objc_name": "captureException:withScope:", "declAttributes": [ - "HasInitialValue", "Final", - "HasStorage", "AccessControl", - "RawDocComment", - "ObjC" + "DiscardableResult", + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "capture", + "printedName": "capture(exception:block:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "NSException", + "printedName": "Foundation.NSException", + "usr": "c:objc(cs)NSException" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", "children": [ { "kind": "TypeNominal", - "name": "SentryId", - "printedName": "Sentry.SentryId", - "usr": "c:@M@Sentry@objc(cs)SentryId" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryId(cm)empty", - "mangledName": "$s6Sentry0A2IdC5emptyACvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final", - "ObjC" - ], - "accessorKind": "get" + ] } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureException:withScopeBlock:", + "mangledName": "$s6Sentry0A3SDKC7capture9exception5blockAA0A2IdCSo11NSExceptionC_ySo0A5ScopeCctFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureException:withScopeBlock:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "sentryIdString", - "printedName": "sentryIdString", + "kind": "Function", + "name": "capture", + "printedName": "capture(message:)", "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, { "kind": "TypeNominal", "name": "String", @@ -10912,72 +16489,64 @@ "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryId(py)sentryIdString", - "mangledName": "$s6Sentry0A2IdC06sentryB6StringSSvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureMessage:", + "mangledName": "$s6Sentry0A3SDKC7capture7messageAA0A2IdCSS_tFZ", "moduleName": "Sentry", + "static": true, + "objc_name": "captureMessage:", "declAttributes": [ "Final", "AccessControl", - "RawDocComment", - "ObjC" + "DiscardableResult", + "ObjC", + "RawDocComment" ], - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)sentryIdString", - "mangledName": "$s6Sentry0A2IdC06sentryB6StringSSvg", - "moduleName": "Sentry", - "declAttributes": [ - "Final", - "ObjC" - ], - "accessorKind": "get" - } - ] + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "capture", + "printedName": "capture(message:scope:)", "children": [ { "kind": "TypeNominal", "name": "SentryId", "printedName": "Sentry.SentryId", "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)init", - "mangledName": "$s6Sentry0A2IdCACycfc", - "moduleName": "Sentry", - "overriding": true, - "objc_name": "init", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureMessage:withScope:", + "mangledName": "$s6Sentry0A3SDKC7capture7message5scopeAA0A2IdCSS_So0A5ScopeCtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureMessage:withScope:", "declAttributes": [ - "Dynamic", - "ObjC", - "Override", + "Final", "AccessControl", + "DiscardableResult", + "ObjC", "RawDocComment" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init(uuid:)", + "kind": "Function", + "name": "capture", + "printedName": "capture(message:block:)", "children": [ { "kind": "TypeNominal", @@ -10987,115 +16556,136 @@ }, { "kind": "TypeNominal", - "name": "UUID", - "printedName": "Foundation.UUID", - "usr": "s:10Foundation4UUIDV" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" + } + ] } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)initWithUuid:", - "mangledName": "$s6Sentry0A2IdC4uuidAC10Foundation4UUIDV_tcfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureMessage:withScopeBlock:", + "mangledName": "$s6Sentry0A3SDKC7capture7message5blockAA0A2IdCSS_ySo0A5ScopeCctFZ", "moduleName": "Sentry", + "static": true, + "objc_name": "captureMessage:withScopeBlock:", "declAttributes": [ + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "DiscardableResult", + "ObjC", + "RawDocComment" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init(uuidString:)", + "kind": "Function", + "name": "capture", + "printedName": "capture(userFeedback:)", "children": [ { "kind": "TypeNominal", - "name": "SentryId", - "printedName": "Sentry.SentryId", - "usr": "c:@M@Sentry@objc(cs)SentryId" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "UserFeedback", + "printedName": "Sentry.UserFeedback", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedback" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)initWithUUIDString:", - "mangledName": "$s6Sentry0A2IdC10uuidStringACSS_tcfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureUserFeedback:", + "mangledName": "$s6Sentry0A3SDKC7capture12userFeedbackyAA04UserE0C_tFZ", "moduleName": "Sentry", - "objc_name": "initWithUUIDString:", + "static": true, + "deprecated": true, + "objc_name": "captureUserFeedback:", "declAttributes": [ + "Final", "AccessControl", "ObjC", + "Available", "RawDocComment" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "isEqual", - "printedName": "isEqual(_:)", + "name": "capture", + "printedName": "capture(feedback:)", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "Any?", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:Sq" + "name": "SentryFeedback", + "printedName": "Sentry.SentryFeedback", + "usr": "c:@M@Sentry@objc(cs)SentryFeedback" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)isEqual:", - "mangledName": "$s6Sentry0A2IdC7isEqualySbypSgF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureFeedback:", + "mangledName": "$s6Sentry0A3SDKC7capture8feedbackyAA0A8FeedbackC_tFZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "isEqual:", + "static": true, + "objc_name": "captureFeedback:", "declAttributes": [ "Final", - "ObjC", "AccessControl", - "Override" + "ObjC", + "RawDocComment" ], "funcSelfKind": "NonMutating" }, { "kind": "Var", - "name": "description", - "printedName": "description", + "name": "feedback", + "printedName": "feedback", "children": [ { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "SentryFeedbackAPI", + "printedName": "Sentry.SentryFeedbackAPI", + "usr": "c:objc(cs)SentryFeedbackAPI" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryId(py)description", - "mangledName": "$s6Sentry0A2IdC11descriptionSSvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)feedback", + "mangledName": "$s6Sentry0A3SDKC8feedbackSo0A11FeedbackAPICvpZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "description", + "static": true, + "intro_iOS": "13.0", "declAttributes": [ + "HasInitialValue", "Final", - "ObjC", + "HasStorage", "AccessControl", - "Override" + "ObjC", + "Available" ], + "isLet": true, + "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -11104,17 +16694,17 @@ "children": [ { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "SentryFeedbackAPI", + "printedName": "Sentry.SentryFeedbackAPI", + "usr": "c:objc(cs)SentryFeedbackAPI" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)description", - "mangledName": "$s6Sentry0A2IdC11descriptionSSvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)feedback", + "mangledName": "$s6Sentry0A3SDKC8feedbackSo0A11FeedbackAPICvgZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "description", + "static": true, + "implicit": true, "declAttributes": [ "Final", "ObjC" @@ -11124,171 +16714,102 @@ ] }, { - "kind": "Var", - "name": "hash", - "printedName": "hash", + "kind": "Function", + "name": "addBreadcrumb", + "printedName": "addBreadcrumb(_:)", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Breadcrumb", + "printedName": "Sentry.Breadcrumb", + "usr": "c:objc(cs)SentryBreadcrumb" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryId(py)hash", - "mangledName": "$s6Sentry0A2IdC4hashSivp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)addBreadcrumb:", + "mangledName": "$s6Sentry0A3SDKC13addBreadcrumbyySo0aD0CFZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "hash", + "static": true, + "objc_name": "addBreadcrumb:", "declAttributes": [ "Final", - "ObjC", "AccessControl", - "Override" + "ObjC", + "RawDocComment" ], - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "configureScope", + "printedName": "configureScope(_:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)hash", - "mangledName": "$s6Sentry0A2IdC4hashSivg", - "moduleName": "Sentry", - "overriding": true, - "objc_name": "hash", - "declAttributes": [ - "Final", - "ObjC" - ], - "accessorKind": "get" + ] } - ] - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryId", - "mangledName": "$s6Sentry0A2IdC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "Final", - "ObjCMembers", - "ObjC" - ], - "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Sendable", - "printedName": "Sendable", - "usr": "s:s8SendableP", - "mangledName": "$ss8SendableP" - }, - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)configureScope:", + "mangledName": "$s6Sentry0A3SDKC14configureScopeyyySo0aD0CcFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "configureScope:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, - { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryFramesDelayResult", - "printedName": "SentryFramesDelayResult", - "children": [ { "kind": "Var", - "name": "delayDuration", - "printedName": "delayDuration", + "name": "crashedLastRun", + "printedName": "crashedLastRun", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(py)delayDuration", - "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDurationSdvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)crashedLastRun", + "mangledName": "$s6Sentry0A3SDKC14crashedLastRunSbvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ "Final", - "HasStorage", "AccessControl", - "RawDocComment", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -11297,54 +16818,47 @@ "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)delayDuration", - "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDurationSdvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)crashedLastRun", + "mangledName": "$s6Sentry0A3SDKC14crashedLastRunSbvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ "Final", "ObjC" ], - "spi_group_names": [ - "Private" - ], "accessorKind": "get" } ] }, { "kind": "Var", - "name": "framesContributingToDelayCount", - "printedName": "framesContributingToDelayCount", + "name": "detectedStartUpCrash", + "printedName": "detectedStartUpCrash", "children": [ { "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(py)framesContributingToDelayCount", - "mangledName": "$s6Sentry0A17FramesDelayResultC020framesContributingToC5CountSuvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)detectedStartUpCrash", + "mangledName": "$s6Sentry0A3SDKC20detectedStartUpCrashSbvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ "Final", - "HasStorage", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -11353,247 +16867,114 @@ "children": [ { "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)framesContributingToDelayCount", - "mangledName": "$s6Sentry0A17FramesDelayResultC020framesContributingToC5CountSuvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)detectedStartUpCrash", + "mangledName": "$s6Sentry0A3SDKC20detectedStartUpCrashSbvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ "Final", "ObjC" ], - "spi_group_names": [ - "Private" - ], "accessorKind": "get" } ] }, { - "kind": "Constructor", - "name": "init", - "printedName": "init(delayDuration:framesContributingToDelayCount:)", + "kind": "Function", + "name": "setUser", + "printedName": "setUser(_:)", "children": [ { "kind": "TypeNominal", - "name": "SentryFramesDelayResult", - "printedName": "Sentry.SentryFramesDelayResult", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult" - }, - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" - } - ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)initWithDelayDuration:framesContributingToDelayCount:", - "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDuration020framesContributingToC5CountACSd_Sutcfc", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Designated" - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init()", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryFramesDelayResult", - "printedName": "Sentry.SentryFramesDelayResult", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult" - } - ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)init", - "mangledName": "$s6Sentry0A17FramesDelayResultCACycfc", - "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", - "declAttributes": [ - "Dynamic", - "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult", - "mangledName": "$s6Sentry0A17FramesDelayResultC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" - }, - { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryANRTracker", - "printedName": "SentryANRTracker", - "children": [ + "name": "Optional", + "printedName": "Sentry.User?", + "children": [ + { + "kind": "TypeNominal", + "name": "User", + "printedName": "Sentry.User", + "usr": "c:objc(cs)SentryUser" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)setUser:", + "mangledName": "$s6Sentry0A3SDKC7setUseryySo0aD0CSgFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, { "kind": "Function", - "name": "add", - "printedName": "add(listener:)", + "name": "startSession", + "printedName": "startSession()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryANRTrackerDelegate", - "printedName": "Sentry.SentryANRTrackerDelegate", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)addListener:", - "mangledName": "$s6Sentry0A10ANRTrackerP3add8listeneryAA0aB8Delegate_p_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startSession", + "mangledName": "$s6Sentry0A3SDKC12startSessionyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", - "sugared_genericSig": "", - "protocolReq": true, - "objc_name": "addListener:", + "static": true, "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "remove", - "printedName": "remove(listener:)", + "name": "endSession", + "printedName": "endSession()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryANRTrackerDelegate", - "printedName": "Sentry.SentryANRTrackerDelegate", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)removeListener:", - "mangledName": "$s6Sentry0A10ANRTrackerP6remove8listeneryAA0aB8Delegate_p_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)endSession", + "mangledName": "$s6Sentry0A3SDKC10endSessionyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", - "sugared_genericSig": "", - "protocolReq": true, - "objc_name": "removeListener:", + "static": true, "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "clear", - "printedName": "clear()", + "name": "crash", + "printedName": "crash()", "children": [ { "kind": "TypeNominal", @@ -11602,207 +16983,100 @@ } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)clear", - "mangledName": "$s6Sentry0A10ANRTrackerP5clearyyF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)crash", + "mangledName": "$s6Sentry0A3SDKC5crashyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", - "sugared_genericSig": "", - "protocolReq": true, + "static": true, "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" - } - ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryANRTracker", - "mangledName": "$s6Sentry0A10ANRTrackerP", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 : AnyObject>", - "sugared_genericSig": "", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryANRTrackerDelegate", - "printedName": "SentryANRTrackerDelegate", - "children": [ + }, { "kind": "Function", - "name": "anrDetected", - "printedName": "anrDetected(type:)", + "name": "reportFullyDisplayed", + "printedName": "reportFullyDisplayed()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryANRType", - "printedName": "Sentry.SentryANRType", - "usr": "c:@M@Sentry@E@SentryANRType" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate(im)anrDetectedWithType:", - "mangledName": "$s6Sentry0A18ANRTrackerDelegateP11anrDetected4typeyAA0A7ANRTypeO_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)reportFullyDisplayed", + "mangledName": "$s6Sentry0A3SDKC20reportFullyDisplayedyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTrackerDelegate>", - "sugared_genericSig": "", - "protocolReq": true, + "static": true, "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "anrStopped", - "printedName": "anrStopped(result:)", + "name": "pauseAppHangTracking", + "printedName": "pauseAppHangTracking()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "Sentry.SentryANRStoppedResult?", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryANRStoppedResult", - "printedName": "Sentry.SentryANRStoppedResult", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" - } - ], - "usr": "s:Sq" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate(im)anrStoppedWithResult:", - "mangledName": "$s6Sentry0A18ANRTrackerDelegateP10anrStopped6resultyAA0A16ANRStoppedResultCSg_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)pauseAppHangTracking", + "mangledName": "$s6Sentry0A3SDKC20pauseAppHangTrackingyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTrackerDelegate>", - "sugared_genericSig": "", - "protocolReq": true, + "static": true, "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" - } - ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate", - "mangledName": "$s6Sentry0A18ANRTrackerDelegateP", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 : AnyObject>", - "sugared_genericSig": "", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC", - "RawDocComment" - ], - "spi_group_names": [ - "Private" - ] - }, - { - "kind": "TypeDecl", - "name": "SentryANRStoppedResult", - "printedName": "SentryANRStoppedResult", - "children": [ + }, { - "kind": "Var", - "name": "minDuration", - "printedName": "minDuration", + "kind": "Function", + "name": "resumeAppHangTracking", + "printedName": "resumeAppHangTracking()", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(py)minDuration", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)resumeAppHangTracking", + "mangledName": "$s6Sentry0A3SDKC21resumeAppHangTrackingyyFZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ "Final", - "HasStorage", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)minDuration", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDurationSdvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "Final", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "accessorKind": "get" - } - ] + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "maxDuration", - "printedName": "maxDuration", + "kind": "Function", + "name": "flush", + "printedName": "flush(timeout:)", "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, { "kind": "TypeNominal", "name": "Double", @@ -11810,86 +17084,119 @@ "usr": "s:Sd" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(py)maxDuration", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11maxDurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)flush:", + "mangledName": "$s6Sentry0A3SDKC5flush7timeoutySd_tFZ", "moduleName": "Sentry", + "static": true, + "objc_name": "flush:", "declAttributes": [ "Final", - "HasStorage", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "close", + "printedName": "close()", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)maxDuration", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11maxDurationSdvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "Final", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)close", + "mangledName": "$s6Sentry0A3SDKC5closeyyFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init(minDuration:maxDuration:)", + "kind": "Function", + "name": "startProfiler", + "printedName": "startProfiler()", "children": [ { "kind": "TypeNominal", - "name": "SentryANRStoppedResult", - "printedName": "Sentry.SentryANRStoppedResult", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" - }, + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startProfiler", + "mangledName": "$s6Sentry0A3SDKC13startProfileryyFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "stopProfiler", + "printedName": "stopProfiler()", + "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - }, + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)stopProfiler", + "mangledName": "$s6Sentry0A3SDKC12stopProfileryyFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "clearLogger", + "printedName": "clearLogger()", + "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)initWithMinDuration:maxDuration:", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDuration03maxE0ACSd_Sdtcfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)clearLogger", + "mangledName": "$s6Sentry0A3SDKC11clearLoggeryyFZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ + "Final", "AccessControl", - "ObjC" + "SPIAccessControl", + "ObjC", + "RawDocComment" ], "spi_group_names": [ "Private" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { "kind": "Constructor", @@ -11898,14 +17205,14 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryANRStoppedResult", - "printedName": "Sentry.SentryANRStoppedResult", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" + "name": "SentrySDK", + "printedName": "Sentry.SentrySDK", + "usr": "c:@M@Sentry@objc(cs)SentrySDK" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)init", - "mangledName": "$s6Sentry0A16ANRStoppedResultCACycfc", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(im)init", + "mangledName": "$s6Sentry0A3SDKCACycfc", "moduleName": "Sentry", "overriding": true, "implicit": true, @@ -11915,26 +17222,21 @@ "ObjC", "Override" ], - "spi_group_names": [ - "Private" - ], "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult", - "mangledName": "$s6Sentry0A16ANRStoppedResultC", + "usr": "c:@M@Sentry@objc(cs)SentrySDK", + "mangledName": "$s6Sentry0A3SDKC", "moduleName": "Sentry", + "isOpen": true, "declAttributes": [ "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], @@ -16822,14 +22124,22 @@ }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" } ], "declKind": "Func", "usr": "c:@M@Sentry@objc(cs)SentryLevelHelper(cm)levelForName:", - "mangledName": "$s6Sentry0A11LevelHelperC12levelForNameyAA0aB0OSSFZ", + "mangledName": "$s6Sentry0A11LevelHelperC12levelForNameyAA0aB0OSSSgFZ", "moduleName": "Sentry", "static": true, "declAttributes": [ @@ -17502,6 +22812,13 @@ "declKind": "Import", "moduleName": "Sentry" }, + { + "kind": "Import", + "name": "PDFKit", + "printedName": "PDFKit", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "Import", "name": "WebKit", @@ -18520,8 +23837,102 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableDataSwizzling:", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvs", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableDataSwizzling:", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvM", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "enableFileManagerSwizzling", + "printedName": "enableFileManagerSwizzling", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableFileManagerSwizzling", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableFileManagerSwizzling", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableFileManagerSwizzling:", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18541,8 +23952,8 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvM", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvM", + "usr": "s:6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvM", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvM", "moduleName": "Sentry", "implicit": true, "accessorKind": "_modify" @@ -18551,8 +23962,8 @@ }, { "kind": "Var", - "name": "enableFileManagerSwizzling", - "printedName": "enableFileManagerSwizzling", + "name": "enableUnhandledCPPExceptionsV2", + "printedName": "enableUnhandledCPPExceptionsV2", "children": [ { "kind": "TypeNominal", @@ -18562,8 +23973,8 @@ } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableFileManagerSwizzling", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvp", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableUnhandledCPPExceptionsV2", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -18587,8 +23998,8 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableFileManagerSwizzling", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvg", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableUnhandledCPPExceptionsV2", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18614,8 +24025,8 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableFileManagerSwizzling:", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvs", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableUnhandledCPPExceptionsV2:", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18635,8 +24046,8 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvM", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvM", + "usr": "s:6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2SbvM", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2SbvM", "moduleName": "Sentry", "implicit": true, "accessorKind": "_modify" @@ -18645,8 +24056,8 @@ }, { "kind": "Var", - "name": "enableUnhandledCPPExceptionsV2", - "printedName": "enableUnhandledCPPExceptionsV2", + "name": "enableLogs", + "printedName": "enableLogs", "children": [ { "kind": "TypeNominal", @@ -18656,8 +24067,8 @@ } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableUnhandledCPPExceptionsV2", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvp", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableLogs", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC10enableLogsSbvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -18681,8 +24092,8 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableUnhandledCPPExceptionsV2", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvg", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableLogs", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC10enableLogsSbvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18708,8 +24119,8 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableUnhandledCPPExceptionsV2:", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvs", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableLogs:", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC10enableLogsSbvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18729,8 +24140,8 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2SbvM", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2SbvM", + "usr": "s:6Sentry0A19ExperimentalOptionsC10enableLogsSbvM", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC10enableLogsSbvM", "moduleName": "Sentry", "implicit": true, "accessorKind": "_modify" @@ -19924,6 +25335,230 @@ "declKind": "Import", "moduleName": "Sentry" }, + { + "kind": "TypeDecl", + "name": "Dependencies", + "printedName": "Dependencies", + "children": [ + { + "kind": "Var", + "name": "dispatchQueueWrapper", + "printedName": "dispatchQueueWrapper", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(cpy)dispatchQueueWrapper", + "mangledName": "$s6Sentry12DependenciesC20dispatchQueueWrapperAA0a8DispatchdE0CvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(cm)dispatchQueueWrapper", + "mangledName": "$s6Sentry12DependenciesC20dispatchQueueWrapperAA0a8DispatchdE0CvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "dateProvider", + "printedName": "dateProvider", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryDefaultCurrentDateProvider", + "printedName": "Sentry.SentryDefaultCurrentDateProvider", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(cpy)dateProvider", + "mangledName": "$s6Sentry12DependenciesC12dateProviderAA0a18DefaultCurrentDateD0CvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryDefaultCurrentDateProvider", + "printedName": "Sentry.SentryDefaultCurrentDateProvider", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(cm)dateProvider", + "mangledName": "$s6Sentry12DependenciesC12dateProviderAA0a18DefaultCurrentDateD0CvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dependencies", + "printedName": "Sentry.Dependencies", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(im)init", + "mangledName": "$s6Sentry12DependenciesCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies", + "mangledName": "$s6Sentry12DependenciesC", + "moduleName": "Sentry", + "objc_name": "SentryDependencies", + "declAttributes": [ + "Final", + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, { "kind": "Import", "name": "AVFoundation", @@ -24212,6 +29847,7 @@ "SPIAccessControl", "ObjCMembers", "Available", + "Available", "RawDocComment", "ObjC" ], @@ -27925,6 +33561,34 @@ } ] }, + { + "kind": "Import", + "name": "AVFoundation", + "printedName": "AVFoundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "CoreGraphics", + "printedName": "CoreGraphics", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "Import", "name": "_SentryPrivate", @@ -28707,6 +34371,290 @@ "declKind": "Import", "moduleName": "Sentry" }, + { + "kind": "TypeDecl", + "name": "SentryNSNotificationCenterWrapper", + "printedName": "SentryNSNotificationCenterWrapper", + "children": [ + { + "kind": "Function", + "name": "addObserver", + "printedName": "addObserver(_:selector:name:object:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + }, + { + "kind": "TypeNominal", + "name": "Selector", + "printedName": "ObjectiveC.Selector", + "usr": "s:10ObjectiveC8SelectorV" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNotification.Name?", + "children": [ + { + "kind": "TypeNominal", + "name": "Name", + "printedName": "Foundation.NSNotification.Name", + "usr": "c:@T@NSNotificationName" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Any?", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper(im)addObserver:selector:name:object:", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP11addObserver_8selector4name6objectyyp_10ObjectiveC8SelectorVSo0B4NameaSgypSgtF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryNSNotificationCenterWrapper>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addObserver", + "printedName": "addObserver(forName:object:queue:using:)", + "children": [ + { + "kind": "TypeNominal", + "name": "NSObjectProtocol", + "printedName": "ObjectiveC.NSObjectProtocol", + "usr": "c:objc(pl)NSObject" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNotification.Name?", + "children": [ + { + "kind": "TypeNominal", + "name": "Name", + "printedName": "Foundation.NSNotification.Name", + "usr": "c:@T@NSNotificationName" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Any?", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.OperationQueue?", + "children": [ + { + "kind": "TypeNominal", + "name": "OperationQueue", + "printedName": "Foundation.OperationQueue", + "usr": "c:objc(cs)NSOperationQueue" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Foundation.Notification) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Notification", + "printedName": "Foundation.Notification", + "usr": "s:10Foundation12NotificationV" + } + ] + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper(im)addObserverForName:object:queue:usingBlock:", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP11addObserver7forName6object5queue5usingSo8NSObject_pSo0bH0aSg_ypSgSo16NSOperationQueueCSgy10Foundation12NotificationVYbctF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryNSNotificationCenterWrapper>", + "sugared_genericSig": "", + "protocolReq": true, + "objc_name": "addObserverForName:object:queue:usingBlock:", + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "removeObserver", + "printedName": "removeObserver(_:name:object:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNotification.Name?", + "children": [ + { + "kind": "TypeNominal", + "name": "Name", + "printedName": "Foundation.NSNotification.Name", + "usr": "c:@T@NSNotificationName" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Any?", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper(im)removeObserver:name:object:", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP14removeObserver_4name6objectyyp_So0B4NameaSgypSgtF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryNSNotificationCenterWrapper>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "post", + "printedName": "post(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Notification", + "printedName": "Foundation.Notification", + "usr": "s:10Foundation12NotificationV" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper(im)postNotification:", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP4postyy10Foundation12NotificationVF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryNSNotificationCenterWrapper>", + "sugared_genericSig": "", + "protocolReq": true, + "objc_name": "postNotification:", + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, { "kind": "Import", "name": "Foundation", @@ -28758,9 +34706,11 @@ "mangledName": "$s6Sentry0A22EnabledFeaturesBuilderC03getbC07optionsSaySSGSo0A7OptionsCSg_tFZ", "moduleName": "Sentry", "static": true, + "deprecated": true, "declAttributes": [ "Final", "AccessControl", + "Available", "RawDocComment", "ObjC" ], @@ -29524,6 +35474,42 @@ ], "funcSelfKind": "NonMutating" }, + { + "kind": "Function", + "name": "dispatch", + "printedName": "dispatch(after:workItem:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + }, + { + "kind": "TypeNominal", + "name": "DispatchWorkItem", + "printedName": "Dispatch.DispatchWorkItem", + "usr": "s:8Dispatch0A8WorkItemC" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A20DispatchQueueWrapperC8dispatch5after8workItemySd_0B00b4WorkH0CtF", + "mangledName": "$s6Sentry0A20DispatchQueueWrapperC8dispatch5after8workItemySd_0B00b4WorkH0CtF", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, { "kind": "Var", "name": "shouldDispatchCancel", @@ -30629,6 +36615,218 @@ "ImplementationOnly" ] }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryLogBatcher", + "printedName": "SentryLogBatcher", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(client:flushTimeout:maxBufferSizeBytes:dispatchQueue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogBatcher", + "printedName": "Sentry.SentryLogBatcher", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher" + }, + { + "kind": "TypeNominal", + "name": "SentryClient", + "printedName": "Sentry.SentryClient", + "usr": "c:objc(cs)SentryClient" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher(im)initWithClient:flushTimeout:maxBufferSizeBytes:dispatchQueue:", + "mangledName": "$s6Sentry0A10LogBatcherC6client12flushTimeout18maxBufferSizeBytes13dispatchQueueACSo0A6ClientC_SdSiAA0a8DispatchL7WrapperCtcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(client:dispatchQueue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogBatcher", + "printedName": "Sentry.SentryLogBatcher", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher" + }, + { + "kind": "TypeNominal", + "name": "SentryClient", + "printedName": "Sentry.SentryClient", + "usr": "c:objc(cs)SentryClient" + }, + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher(im)initWithClient:dispatchQueue:", + "mangledName": "$s6Sentry0A10LogBatcherC6client13dispatchQueueACSo0A6ClientC_AA0a8DispatchF7WrapperCtcfc", + "moduleName": "Sentry", + "declAttributes": [ + "Convenience", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Convenience" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogBatcher", + "printedName": "Sentry.SentryLogBatcher", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher(im)init", + "mangledName": "$s6Sentry0A10LogBatcherCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher", + "mangledName": "$s6Sentry0A10LogBatcherC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, { "kind": "Import", "name": "_SentryPrivate", @@ -33240,6 +39438,94 @@ } ] }, + { + "kind": "TypeDecl", + "name": "NotificationCenter", + "printedName": "NotificationCenter", + "declKind": "Class", + "usr": "c:objc(cs)NSNotificationCenter", + "moduleName": "Foundation", + "isOpen": true, + "objc_name": "NSNotificationCenter", + "declAttributes": [ + "ObjC", + "SynthesizedProtocol", + "NonSendable", + "Sendable", + "Dynamic" + ], + "superclassUsr": "c:objc(cs)NSObject", + "isExternal": true, + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "SentryNSNotificationCenterWrapper", + "printedName": "SentryNSNotificationCenterWrapper", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP" + } + ] + }, { "kind": "TypeDecl", "name": "DebugMeta", @@ -33791,21 +40077,21 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/RRWeb\/SentryRRWebEvent.swift", "kind": "StringLiteral", - "offset": 744, + "offset": 801, "length": 6, "value": "\"type\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/RRWeb\/SentryRRWebEvent.swift", "kind": "StringLiteral", - "offset": 779, + "offset": 836, "length": 11, "value": "\"timestamp\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/RRWeb\/SentryRRWebEvent.swift", "kind": "StringLiteral", - "offset": 907, + "offset": 964, "length": 6, "value": "\"data\"" }, @@ -34428,28 +40714,28 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryUserCodable.swift", "kind": "StringLiteral", - "offset": 484, + "offset": 402, "length": 4, "value": "\"id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryUserCodable.swift", "kind": "StringLiteral", - "offset": 555, + "offset": 473, "length": 12, "value": "\"ip_address\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryUserCodable.swift", "kind": "StringLiteral", - "offset": 484, + "offset": 402, "length": 4, "value": "\"id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryUserCodable.swift", "kind": "StringLiteral", - "offset": 555, + "offset": 473, "length": 12, "value": "\"ip_address\"" }, @@ -34645,161 +40931,161 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 220, + "offset": 263, "length": 8, "value": "\"widget\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 262, + "offset": 305, "length": 8, "value": "\"custom\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 337, + "offset": 380, "length": 6, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 337, + "offset": 380, "length": 6, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 45, + "offset": 88, "length": 14, "value": "\"Sentry.SentryFeedback\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1651, + "offset": 1980, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1655, + "offset": 1984, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1676, + "offset": 2005, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1680, + "offset": 2009, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1713, + "offset": 2042, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1717, + "offset": 2046, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1770, + "offset": 2099, "length": 1, "value": "2" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 1810, + "offset": 2139, "length": 9, "value": "\"message\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 1877, + "offset": 2206, "length": 6, "value": "\"name\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 1950, + "offset": 2279, "length": 15, "value": "\"contact_email\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2057, + "offset": 2386, "length": 21, "value": "\"associated_event_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2138, + "offset": 2467, "length": 8, "value": "\"source\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2731, + "offset": 3060, "length": 9, "value": "\"message\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2806, + "offset": 3135, "length": 6, "value": "\"name\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2879, + "offset": 3208, "length": 7, "value": "\"email\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2966, + "offset": 3295, "length": 13, "value": "\"attachments\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 3395, + "offset": 3724, "length": 16, "value": "\"screenshot.png\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 3426, + "offset": 3755, "length": 17, "value": "\"application\/png\"" }, @@ -34820,105 +41106,105 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1354, + "offset": 1712, "length": 10, "value": "\"event_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1501, + "offset": 1859, "length": 17, "value": "\"start_timestamp\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1606, + "offset": 1964, "length": 13, "value": "\"server_name\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1647, + "offset": 2005, "length": 9, "value": "\"release\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1884, + "offset": 2242, "length": 10, "value": "\"contexts\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1988, + "offset": 2346, "length": 12, "value": "\"debug_meta\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1354, + "offset": 1712, "length": 10, "value": "\"event_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1501, + "offset": 1859, "length": 17, "value": "\"start_timestamp\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1606, + "offset": 1964, "length": 13, "value": "\"server_name\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1647, + "offset": 2005, "length": 9, "value": "\"release\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1884, + "offset": 2242, "length": 10, "value": "\"contexts\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1988, + "offset": 2346, "length": 12, "value": "\"debug_meta\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 4673, + "offset": 4949, "length": 8, "value": "\"values\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 4870, + "offset": 5146, "length": 8, "value": "\"values\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 5178, + "offset": 5454, "length": 8, "value": "\"images\"" }, @@ -34932,77 +41218,77 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "BooleanLiteral", - "offset": 2488, + "offset": 2537, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 3176, + "offset": 3225, "length": 39, "value": "\"init(coder:) has not been implemented\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 2615, + "offset": 2664, "length": 6, "value": "\"Sentry.Window\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 2615, + "offset": 2664, "length": 6, "value": "\"Sentry.Window\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "IntegerLiteral", - "offset": 3866, + "offset": 3915, "length": 1, "value": "8" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 5329, + "offset": 5378, "length": 105, "value": "\"SentryUserFeedbackWidget.RootViewController is not intended to be initialized from a nib or storyboard.\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "FloatLiteral", - "offset": 5722, + "offset": 5771, "length": 3, "value": "0.3" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "IntegerLiteral", - "offset": 5734, + "offset": 5783, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "IntegerLiteral", - "offset": 5816, + "offset": 5865, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "IntegerLiteral", - "offset": 5820, + "offset": 5869, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 3741, + "offset": 3790, "length": 18, "value": "\"Sentry.RootViewController\"" }, @@ -35062,150 +41348,262 @@ "length": 12, "value": "\"Sentry.UserFeedback\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "Array", + "offset": 1118, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "StringLiteral", + "offset": 1493, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "Array", + "offset": 1544, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "StringLiteral", + "offset": 1578, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "IntegerLiteral", + "offset": 1622, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "IntegerLiteral", + "offset": 1932, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "IntegerLiteral", + "offset": 2212, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "StringLiteral", + "offset": 4419, + "length": 25, + "value": "\"{\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "StringLiteral", + "offset": 4442, + "length": 1, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "IntegerLiteral", + "offset": 4608, + "length": 1, + "value": "1" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 462, + "offset": 380, "length": 13, "value": "\"symbol_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 500, + "offset": 418, "length": 10, "value": "\"filename\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 602, + "offset": 520, "length": 12, "value": "\"image_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 671, + "offset": 589, "length": 18, "value": "\"instruction_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1012, + "offset": 930, "length": 8, "value": "\"lineno\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1049, + "offset": 967, "length": 7, "value": "\"colno\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1078, + "offset": 1002, + "length": 14, + "value": "\"context_line\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1043, + "length": 13, + "value": "\"pre_context\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1084, + "length": 14, + "value": "\"post_context\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1138, "length": 8, "value": "\"in_app\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1113, + "offset": 1173, "length": 13, "value": "\"stack_start\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 462, + "offset": 380, "length": 13, "value": "\"symbol_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 500, + "offset": 418, "length": 10, "value": "\"filename\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 602, + "offset": 520, "length": 12, "value": "\"image_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 671, + "offset": 589, "length": 18, "value": "\"instruction_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1012, + "offset": 930, "length": 8, "value": "\"lineno\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1049, + "offset": 967, "length": 7, "value": "\"colno\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1078, + "offset": 1002, + "length": 14, + "value": "\"context_line\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1043, + "length": 13, + "value": "\"pre_context\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1084, + "length": 14, + "value": "\"post_context\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1138, "length": 8, "value": "\"in_app\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1113, + "offset": 1173, "length": 13, "value": "\"stack_start\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 504, + "offset": 422, "length": 4, "value": "\"id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 615, + "offset": 533, "length": 6, "value": "\"main\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 504, + "offset": 422, "length": 4, "value": "\"id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 615, + "offset": 533, "length": 6, "value": "\"main\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 1159, + "offset": 1063, "length": 61, "value": "\"Can't decode SentryThread because couldn't decode threadId.\"" }, @@ -35275,42 +41673,49 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryGeoCodable.swift", "kind": "StringLiteral", - "offset": 480, + "offset": 398, "length": 14, "value": "\"country_code\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryGeoCodable.swift", "kind": "StringLiteral", - "offset": 480, + "offset": 398, "length": 14, "value": "\"country_code\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", "kind": "StringLiteral", - "offset": 309, + "offset": 203, + "length": 9, + "value": "\"Sentry.SentryLog\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", + "kind": "StringLiteral", + "offset": 1421, "length": 10, "value": "\"trace_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", "kind": "StringLiteral", - "offset": 411, + "offset": 1523, "length": 17, "value": "\"severity_number\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", "kind": "StringLiteral", - "offset": 309, + "offset": 1421, "length": 10, "value": "\"trace_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", "kind": "StringLiteral", - "offset": 411, + "offset": 1523, "length": 17, "value": "\"severity_number\"" }, @@ -35342,6 +41747,104 @@ "length": 71, "value": "\"Non string found in fingerprint array, returning only string elements\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 1284, + "length": 11, + "value": "\"\/usr\/lib\/\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 1332, + "length": 43, + "value": "\"\/Library\/Developer\/CoreSimulator\/Volumes\/\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 1408, + "length": 18, + "value": "\"\/System\/Library\/\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "BooleanLiteral", + "offset": 1605, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "BooleanLiteral", + "offset": 1719, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "IntegerLiteral", + "offset": 2612, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "IntegerLiteral", + "offset": 2899, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "Array", + "offset": 3897, + "length": 67, + "value": "[\"❌ Sentry SDK was loaded multiple times in the same binary ❌\"]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4008, + "length": 76, + "value": "\"⚠️ This can cause undefined behavior, crashes, or duplicate reporting.\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4129, + "length": 103, + "value": "\"Ensure the SDK is linked only once, found `\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4196, + "length": 1, + "value": "\"` class in image path: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4231, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4307, + "length": 4, + "value": "\"\n\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "BooleanLiteral", + "offset": 4359, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryReplayRecording.swift", "kind": "StringLiteral", @@ -35496,6 +41999,251 @@ "length": 47, "value": "\"Sentry.SentryUserFeedbackWidgetButtonMegaphoneIconView\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 1990, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 2308, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 2841, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 3159, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 3690, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 4004, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 4534, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 4850, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 5383, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 5702, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 6236, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 6554, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "FloatLiteral", + "offset": 7045, + "length": 3, + "value": "0.0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 7561, + "length": 25, + "value": "\"sentry.message.template\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 7793, + "length": 35, + "value": "\"sentry.message.parameter.\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 7827, + "length": 14, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 8911, + "length": 17, + "value": "\"sentry.sdk.name\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 8985, + "length": 20, + "value": "\"sentry.sdk.version\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9068, + "length": 20, + "value": "\"sentry.environment\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9217, + "length": 16, + "value": "\"sentry.release\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9336, + "length": 29, + "value": "\"sentry.trace.parent_span_id\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9669, + "length": 6, + "value": "\"name\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9713, + "length": 9, + "value": "\"os.name\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9795, + "length": 9, + "value": "\"version\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9842, + "length": 12, + "value": "\"os.version\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10192, + "length": 14, + "value": "\"device.brand\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10224, + "length": 7, + "value": "\"Apple\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10285, + "length": 7, + "value": "\"model\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10330, + "length": 14, + "value": "\"device.model\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10429, + "length": 8, + "value": "\"family\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10475, + "length": 15, + "value": "\"device.family\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10771, + "length": 9, + "value": "\"user.id\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10877, + "length": 11, + "value": "\"user.name\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10989, + "length": 12, + "value": "\"user.email\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 1286, + "length": 12, + "value": "\"Sentry.SentryLogger\"" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoInfo.swift", "kind": "StringLiteral", @@ -35506,42 +42254,42 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismMetaCodable.swift", "kind": "StringLiteral", - "offset": 522, + "offset": 440, "length": 16, "value": "\"mach_exception\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismMetaCodable.swift", "kind": "StringLiteral", - "offset": 560, + "offset": 478, "length": 10, "value": "\"ns_error\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismMetaCodable.swift", "kind": "StringLiteral", - "offset": 522, + "offset": 440, "length": 16, "value": "\"mach_exception\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismMetaCodable.swift", "kind": "StringLiteral", - "offset": 560, + "offset": 478, "length": 10, "value": "\"ns_error\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryStacktraceCodable.swift", "kind": "Array", - "offset": 972, + "offset": 876, "length": 2, "value": "[]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryStacktraceCodable.swift", "kind": "Dictionary", - "offset": 1075, + "offset": 979, "length": 3, "value": "[]" }, @@ -37018,28 +43766,28 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismCodable.swift", "kind": "StringLiteral", - "offset": 535, + "offset": 453, "length": 13, "value": "\"description\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismCodable.swift", "kind": "StringLiteral", - "offset": 591, + "offset": 509, "length": 11, "value": "\"help_link\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismCodable.swift", "kind": "StringLiteral", - "offset": 535, + "offset": 453, "length": 13, "value": "\"description\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismCodable.swift", "kind": "StringLiteral", - "offset": 591, + "offset": 509, "length": 11, "value": "\"help_link\"" }, @@ -37295,17 +44043,38 @@ "length": 22, "value": "\"Sentry.SentryANRStoppedResult\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentrySDK.swift", + "kind": "IntegerLiteral", + "offset": 18984, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentrySDK.swift", + "kind": "FloatLiteral", + "offset": 22688, + "length": 3, + "value": "0.0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentrySDK.swift", + "kind": "FloatLiteral", + "offset": 22776, + "length": 3, + "value": "0.0" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/MetricKit\/SentryMXManager.swift", "kind": "BooleanLiteral", - "offset": 1401, + "offset": 1205, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/MetricKit\/SentryMXManager.swift", "kind": "StringLiteral", - "offset": 1250, + "offset": 1054, "length": 15, "value": "\"Sentry.SentryMXManager\"" }, @@ -37844,168 +44613,168 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "Array", - "offset": 2233, + "offset": 2247, "length": 44, "value": "[\"RCTTextView\", \"RCTParagraphComponentView\"]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "Array", - "offset": 2461, + "offset": 2475, "length": 233, "value": "[\"_TtCOCV7SwiftUI11DisplayList11ViewUpdater8Platform13CGDrawingView\", \"_TtC7SwiftUIP33_A34643117F00277B93DEBAB70EC0697122_UIShapeHitTestingView\", \"SwiftUI._UIGraphicsView\", \"SwiftUI.ImageLayer\"]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "Array", - "offset": 2959, + "offset": 2973, "length": 16, "value": "[\"RCTImageView\"]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "Array", - "offset": 3175, + "offset": 3203, "length": 406, "value": "[\"UIWebView\", \"SFSafariView\"]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 4634, + "offset": 4662, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 4732, + "offset": 4760, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 9089, + "offset": 9117, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 9305, + "offset": 9333, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 9547, + "offset": 9575, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 9774, + "offset": 9802, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 10248, + "offset": 10276, "length": 2, "value": "10" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 10274, + "offset": 10302, "length": 2, "value": "10" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 10292, + "offset": 10320, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "StringLiteral", - "offset": 10347, + "offset": 10375, "length": 19, "value": "\"_containingBundle\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 10634, + "offset": 10662, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 10730, + "offset": 10758, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 11616, + "offset": 11644, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 12365, + "offset": 12393, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14476, + "offset": 14504, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14496, + "offset": 14524, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14624, + "offset": 14652, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14923, + "offset": 14951, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14999, + "offset": 15027, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 15005, + "offset": 15033, "length": 1, "value": "1" }, @@ -38254,6 +45023,13 @@ "length": 5, "value": "false" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/SentryExperimentalOptions.swift", + "kind": "BooleanLiteral", + "offset": 1939, + "length": 5, + "value": "false" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/UrlSanitized.swift", "kind": "StringLiteral", @@ -38572,63 +45348,63 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "StringLiteral", - "offset": 1089, + "offset": 1226, "length": 94, "value": "\"[Session Replay] Appending image to pixel buffer with presentation time: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "StringLiteral", - "offset": 1182, + "offset": 1319, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "StringLiteral", - "offset": 1268, + "offset": 1405, "length": 86, "value": "\"[Session Replay] Could not append image to pixel buffer, reason: pixel buffer is nil\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "BooleanLiteral", - "offset": 1375, + "offset": 1512, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "IntegerLiteral", - "offset": 1769, + "offset": 1906, "length": 1, "value": "8" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "StringLiteral", - "offset": 2001, + "offset": 2138, "length": 93, "value": "\"[Session Replay] Failed to append image to pixel buffer, reason: could not create CGContext\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "BooleanLiteral", - "offset": 2115, + "offset": 2252, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "IntegerLiteral", - "offset": 2176, + "offset": 2313, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "IntegerLiteral", - "offset": 2182, + "offset": 2319, "length": 1, "value": "0" }, @@ -38698,28 +45474,28 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryRequestCodable.swift", "kind": "StringLiteral", - "offset": 509, + "offset": 427, "length": 11, "value": "\"body_size\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryRequestCodable.swift", "kind": "StringLiteral", - "offset": 632, + "offset": 550, "length": 14, "value": "\"query_string\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryRequestCodable.swift", "kind": "StringLiteral", - "offset": 509, + "offset": 427, "length": 11, "value": "\"body_size\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryRequestCodable.swift", "kind": "StringLiteral", - "offset": 632, + "offset": 550, "length": 14, "value": "\"query_string\"" }, @@ -39818,77 +46594,77 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 3591, + "offset": 3640, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 3719, + "offset": 3768, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "StringLiteral", - "offset": 622, + "offset": 671, "length": 35, "value": "\"Sentry.SentryUserFeedbackIntegrationDriver\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 4488, + "offset": 4586, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 4555, + "offset": 4653, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 5092, + "offset": 5288, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 5159, + "offset": 5355, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 5560, + "offset": 5805, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 5628, + "offset": 5873, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "StringLiteral", - "offset": 6809, + "offset": 7054, "length": 139, "value": "\"Invalid widget location specified: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "StringLiteral", - "offset": 6863, + "offset": 7108, "length": 1, "value": "\". Must specify either one edge or one corner of the screen rect to place the widget.\"" }, @@ -40238,115 +47014,437 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 376, + "offset": 384, + "length": 5, + "value": "1" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 403, + "length": 4, + "value": "2" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 421, + "length": 4, + "value": "3" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 439, + "length": 5, + "value": "4" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 458, + "length": 5, + "value": "5" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 790, + "length": 7, + "value": "\"trace\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 846, + "length": 7, + "value": "\"debug\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 902, + "length": 6, + "value": "\"info\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 956, + "length": 6, + "value": "\"warn\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1010, + "length": 7, + "value": "\"error\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1066, + "length": 7, + "value": "\"fatal\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1164, + "length": 16, + "value": "\"SentryLogLevel\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 1188, "length": 1, "value": "1" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1229, + "length": 29, + "value": "\"Unknown log level: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1257, + "length": 3, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1459, + "length": 7, + "value": "\"trace\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1515, + "length": 7, + "value": "\"debug\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1570, + "length": 6, + "value": "\"info\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1624, + "length": 6, + "value": "\"warn\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1679, + "length": 7, + "value": "\"error\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1735, + "length": 7, + "value": "\"fatal\"" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 426, + "offset": 2107, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 2157, "length": 1, "value": "5" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 475, + "offset": 2206, "length": 1, "value": "9" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 524, + "offset": 2255, "length": 2, "value": "13" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 575, + "offset": 2306, "length": 2, "value": "17" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 626, + "offset": 2357, "length": 2, "value": "21" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 384, + "length": 5, + "value": "1" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 403, + "length": 4, + "value": "2" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 421, + "length": 4, + "value": "3" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 439, + "length": 5, + "value": "4" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 458, + "length": 5, + "value": "5" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 256, + "offset": 641, "length": 8, "value": "\"string\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 299, + "offset": 792, "length": 9, "value": "\"boolean\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 343, + "offset": 943, "length": 9, "value": "\"integer\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 386, + "offset": 1096, "length": 8, "value": "\"double\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1084, + "offset": 1304, + "length": 8, + "value": "\"double\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 1531, "length": 8, "value": "\"string\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1193, + "offset": 1649, "length": 9, "value": "\"boolean\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1302, + "offset": 1764, "length": 9, "value": "\"integer\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1410, + "offset": 1884, "length": 8, "value": "\"double\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1626, + "offset": 2004, + "length": 8, + "value": "\"double\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 2182, + "length": 8, + "value": "\"string\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 332, + "length": 9, + "value": "\"Sentry.Attribute\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 2788, + "length": 8, + "value": "\"string\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 2881, + "length": 9, + "value": "\"boolean\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 2973, + "length": 9, + "value": "\"integer\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3064, + "length": 8, + "value": "\"double\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3260, "length": 23, "value": "\"Unknown type: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1648, + "offset": 3282, "length": 2, "value": "\"\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3590, + "length": 8, + "value": "\"string\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3788, + "length": 50, + "value": "\"Expected String but got \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3837, + "length": 3, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3930, + "length": 9, + "value": "\"boolean\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4125, + "length": 48, + "value": "\"Expected Bool but got \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4172, + "length": 3, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4263, + "length": 9, + "value": "\"integer\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4456, + "length": 47, + "value": "\"Expected Int but got \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4502, + "length": 3, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4592, + "length": 8, + "value": "\"double\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4790, + "length": 50, + "value": "\"Expected Double but got \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4839, + "length": 3, + "value": "\"\"" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Persistence\/SentryScopePersistentStore.swift", "kind": "IntegerLiteral", @@ -40844,6 +47942,293 @@ "length": 3, "value": "\" \"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "Array", + "offset": 1263, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "BooleanLiteral", + "offset": 1292, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 1908, + "length": 77, + "value": "\"[Session Replay] Video writer input is ready, status: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 1984, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 2078, + "length": 157, + "value": "\"[Session Replay] Video writer is not writing anymore, cancelling the writing session, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 2218, + "length": 15, + "value": "\"Unknown error\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 2234, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 2567, + "length": 75, + "value": "\"[Session Replay] No more frames available to process, finishing the video\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "IntegerLiteral", + "offset": 3031, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3256, + "length": 77, + "value": "\"[Session Replay] Image at index \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3302, + "length": 2, + "value": "\" is ready, size: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3332, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3423, + "length": 58, + "value": "\"[Session Replay] Image size has changed, finishing video\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3956, + "length": 139, + "value": "\"[Session Replay] Failed to append image to pixel buffer, cancelling the writing session, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4094, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4722, + "length": 171, + "value": "\"[Session Replay] Finishing video with output file URL: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4794, + "length": 1, + "value": "\", used frames count: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4834, + "length": 1, + "value": "\", video height: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4864, + "length": 1, + "value": "\", video width: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4892, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5083, + "length": 104, + "value": "\"[Session Replay] On-demand replay is deallocated, completing writing session without output video info\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5389, + "length": 77, + "value": "\"[Session Replay] Finished video writing, status: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5465, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5576, + "length": 121, + "value": "\"[Session Replay] Finish writing video was called with status writing, this is unexpected! Completing with no video info\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5920, + "length": 85, + "value": "\"[Session Replay] Finish writing video was cancelled, completing with no video info.\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 6226, + "length": 96, + "value": "\"[Session Replay] Finish writing video was completed, creating video info from file attributes.\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 6875, + "length": 85, + "value": "\"[Session Replay] Failed to create video info from file attributes, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 6959, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7091, + "length": 101, + "value": "\"[Session Replay] Finish writing video failed, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7191, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7368, + "length": 114, + "value": "\"[Session Replay] Finish writing video with unknown status, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7481, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7661, + "length": 111, + "value": "\"[Session Replay] Finish writing video in unknown state, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7771, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8059, + "length": 156, + "value": "\"[Session Replay] Getting video info from file: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8128, + "length": 1, + "value": "\", width: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8150, + "length": 1, + "value": "\", height: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8174, + "length": 1, + "value": "\", used frames count: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8214, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8430, + "length": 94, + "value": "\"[Session Replay] Failed to read video size from video file, reason: size attribute not found\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 9050, + "length": 92, + "value": "\"[Session Replay] Failed to read video start time from used frames, reason: no frames found\"" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryReplayEvent.swift", "kind": "StringLiteral", @@ -41484,105 +48869,105 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "Array", - "offset": 307, + "offset": 526, "length": 2, "value": "[]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "Array", - "offset": 353, + "offset": 572, "length": 2, "value": "[]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 442, + "offset": 661, "length": 23, "value": "\"captureFailedRequests\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 555, + "offset": 774, "length": 15, "value": "\"performanceV2\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 671, + "offset": 890, "length": 26, "value": "\"timeToFullDisplayTracing\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 843, + "offset": 1082, "length": 20, "value": "\"appLaunchProfiling\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1086, + "offset": 1351, "length": 26, "value": "\"preWarmedAppStartTracing\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1261, + "offset": 1526, "length": 23, "value": "\"swiftAsyncStacktraces\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1428, + "offset": 1713, "length": 19, "value": "\"appHangTrackingV2\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1615, + "offset": 1926, "length": 30, "value": "\"persistingTracesWhenCrashing\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1875, + "offset": 2174, "length": 26, "value": "\"experimentalViewRenderer\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 2000, + "offset": 2287, "length": 19, "value": "\"fastViewRendering\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 2166, + "offset": 2453, "length": 15, "value": "\"dataSwizzling\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 2282, + "offset": 2569, "length": 22, "value": "\"fileManagerSwizzling\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 2409, + "offset": 2696, "length": 26, "value": "\"unhandledCPPExceptionsV2\"" }, @@ -41834,14 +49219,14 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryDispatchQueueWrapper.swift", "kind": "BooleanLiteral", - "offset": 2424, + "offset": 2699, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryDispatchQueueWrapper.swift", "kind": "BooleanLiteral", - "offset": 2504, + "offset": 2779, "length": 4, "value": "true" }, @@ -42422,373 +49807,212 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 11343, + "offset": 11344, "length": 70, "value": "\"[Session Replay] Failed to render video, reason: index out of bounds\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 11687, + "offset": 11627, "length": 107, "value": "\"[Session Replay] Failed to render video, reason: can't read image at path: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 11793, + "offset": 11733, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12189, + "offset": 12065, "length": 79, "value": "\"[Session Replay] Creating video writer with output file URL: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12267, + "offset": 12143, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12451, + "offset": 12327, "length": 66, "value": "\"[Session Replay] Failed to create video writer, reason: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12516, + "offset": 12392, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12604, + "offset": 12480, "length": 65, "value": "\"[Session Replay] Creating pixel buffer based video writer input\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12965, + "offset": 12841, "length": 79, "value": "\"[Session Replay] Failed to render video, reason: pixel buffer creation failed\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 14954, - "length": 77, - "value": "\"[Session Replay] Video writer input is ready, status: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15030, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15117, - "length": 104, - "value": "\"[Session Replay] On-demand replay is deallocated, completing writing session without output video info\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15393, - "length": 157, - "value": "\"[Session Replay] Video writer is not writing anymore, cancelling the writing session, reason: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15533, - "length": 15, - "value": "\"Unknown error\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15549, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15829, - "length": 75, - "value": "\"[Session Replay] No more frames available to process, finishing the video\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 16440, - "length": 77, - "value": "\"[Session Replay] Image at index \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 16486, - "length": 2, - "value": "\" is ready, size: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 16516, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 16615, - "length": 58, - "value": "\"[Session Replay] Image size has changed, finishing video\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 17485, - "length": 139, - "value": "\"[Session Replay] Failed to append image to pixel buffer, cancelling the writing session, reason: \"" + "kind": "BooleanLiteral", + "offset": 16302, + "length": 5, + "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 17623, - "length": 2, - "value": "\"\"" + "kind": "IntegerLiteral", + "offset": 16834, + "length": 1, + "value": "6" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "IntegerLiteral", - "offset": 18068, + "offset": 19744, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 18573, - "length": 171, - "value": "\"[Session Replay] Finishing video with output file URL: \"" + "offset": 327, + "length": 20, + "value": "\"Sentry.SentryOnDemandReplay\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18645, - "length": 1, - "value": "\", used frames count: \"" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "Array", + "offset": 563, + "length": 2, + "value": "[]" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18685, + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 605, "length": 1, - "value": "\", video height: \"" + "value": "0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18715, + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 2378, "length": 1, - "value": "\", video width: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18743, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18887, - "length": 72, - "value": "\"[Session Replay] Finished video writing, status: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18958, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 19045, - "length": 104, - "value": "\"[Session Replay] On-demand replay is deallocated, completing writing session without output video info\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 19317, - "length": 121, - "value": "\"[Session Replay] Finish writing video was called with status writing, this is unexpected! Completing with no video info\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 19548, - "length": 85, - "value": "\"[Session Replay] Finish writing video was cancelled, completing with no video info.\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 19741, - "length": 96, - "value": "\"[Session Replay] Finish writing video was completed, creating video info from file attributes.\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20260, - "length": 85, - "value": "\"[Session Replay] Failed to create video info from file attributes, reason: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20344, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20476, - "length": 96, - "value": "\"[Session Replay] Finish writing video failed, reason: \"" + "value": "5" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20571, - "length": 2, - "value": "\"\"" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 2413, + "length": 5, + "value": "1024" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20743, - "length": 109, - "value": "\"[Session Replay] Finish writing video with unknown status, reason: \"" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 2421, + "length": 5, + "value": "1024" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20851, - "length": 2, - "value": "\"\"" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "FloatLiteral", + "offset": 3110, + "length": 15, + "value": "1000000000.0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21026, - "length": 106, - "value": "\"[Session Replay] Finish writing video in unknown state, reason: \"" + "offset": 3808, + "length": 32, + "value": "\"Failed to encode log: \"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21131, + "offset": 3839, "length": 2, "value": "\"\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21431, - "length": 156, - "value": "\"[Session Replay] Getting video info from file: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 21500, - "length": 1, - "value": "\", width: \"" + "offset": 4047, + "length": 56, + "value": "\"SentryLogBatcher: Timer fired, calling performFlush().\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 21522, + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 4501, "length": 1, - "value": "\", height: \"" + "value": "0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 21546, + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 4654, "length": 1, - "value": "\", used frames count: \"" + "value": "0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21586, - "length": 2, - "value": "\"\"" + "offset": 4694, + "length": 37, + "value": "\"SentryLogBatcher: No logs to flush.\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21802, - "length": 94, - "value": "\"[Session Replay] Failed to read video size from video file, reason: size attribute not found\"" + "offset": 4868, + "length": 14, + "value": "\"{\"items\":[\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 22422, - "length": 92, - "value": "\"[Session Replay] Failed to read video start time from used frames, reason: no frames found\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "BooleanLiteral", - "offset": 24892, - "length": 5, - "value": "false" + "offset": 4919, + "length": 3, + "value": "\",\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "IntegerLiteral", - "offset": 25424, + "offset": 5014, "length": 1, - "value": "6" + "value": "0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "IntegerLiteral", - "offset": 28334, - "length": 1, - "value": "1" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "StringLiteral", + "offset": 5163, + "length": 4, + "value": "\"]}\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 327, - "length": 20, - "value": "\"Sentry.SentryOnDemandReplay\"" + "offset": 109, + "length": 16, + "value": "\"Sentry.SentryLogBatcher\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Persistence\/SentryScopePersistentStore+Tags.swift", @@ -42814,84 +50038,84 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 506, + "offset": 424, "length": 10, "value": "\"debug_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 578, + "offset": 496, "length": 12, "value": "\"image_size\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 619, + "offset": 537, "length": 12, "value": "\"image_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 662, + "offset": 580, "length": 14, "value": "\"image_vmaddr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 701, + "offset": 619, "length": 11, "value": "\"code_file\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 506, + "offset": 424, "length": 10, "value": "\"debug_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 578, + "offset": 496, "length": 12, "value": "\"image_size\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 619, + "offset": 537, "length": 12, "value": "\"image_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 662, + "offset": 580, "length": 14, "value": "\"image_vmaddr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 701, + "offset": 619, "length": 11, "value": "\"code_file\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryExceptionCodable.swift", "kind": "StringLiteral", - "offset": 569, + "offset": 487, "length": 11, "value": "\"thread_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryExceptionCodable.swift", "kind": "StringLiteral", - "offset": 569, + "offset": 487, "length": 11, "value": "\"thread_id\"" } diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.private.swiftinterface b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.private.swiftinterface index 0cbed36..7665eb5 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.private.swiftinterface +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.private.swiftinterface @@ -1,14 +1,17 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) -// swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name Sentry +// swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name Sentry // swift-module-flags-ignorable: -enable-bare-slash-regex import AVFoundation import CoreGraphics import CoreMedia +import Darwin import Foundation +import MachO import MetricKit import ObjectiveC.NSObjCRuntime import ObjectiveC +import PDFKit @_exported import Sentry import Swift import UIKit @@ -45,6 +48,7 @@ import _SwiftConcurrencyShims @_spi(Private) @objc(SentryRRWebEvent) public protocol SentryRRWebEventProtocol : Sentry.SentrySerializable { } @_spi(Private) @objc @_hasMissingDesignatedInitializers @objcMembers public class SentryRRWebEvent : ObjectiveC.NSObject, Sentry.SentryRRWebEventProtocol { + @_spi(Private) @objc final public let data: [Swift.String : Any]? @_spi(Private) @objc public func serialize() -> [Swift.String : Any] @_spi(Private) @objc deinit } @@ -87,6 +91,8 @@ extension Sentry.User : Swift.Decodable { @objc deinit } extension Sentry.SentryFeedback : Sentry.SentrySerializable { +} +extension Sentry.SentryFeedback { @objc dynamic public func serialize() -> [Swift.String : Any] } extension Sentry.SentryFeedback { @@ -109,6 +115,24 @@ extension Sentry.SentryFeedback { @objc open func serialize() -> [Swift.String : Any] @objc deinit } +public struct SentryLogMessage : Swift.ExpressibleByStringInterpolation { + public init(stringLiteral value: Swift.String) + public init(stringInterpolation: Sentry.SentryLogMessage.StringInterpolation) + public struct StringInterpolation : Swift.StringInterpolationProtocol { + public init(literalCapacity: Swift.Int, interpolationCount: Swift.Int) + public mutating func appendLiteral(_ literal: Swift.String) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.String) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Bool) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Int) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Double) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Float) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> T) where T : Swift.CustomStringConvertible + public typealias StringLiteralType = Swift.String + } + public typealias ExtendedGraphemeClusterLiteralType = Swift.String + public typealias StringLiteralType = Swift.String + public typealias UnicodeScalarLiteralType = Swift.String +} extension Sentry.Frame : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } @@ -118,6 +142,24 @@ extension Sentry.SentryThread : Swift.Decodable { extension Sentry.Geo : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } +@_hasMissingDesignatedInitializers @objc @objcMembers final public class SentryLog : ObjectiveC.NSObject { + @objc final public var timestamp: Foundation.Date + @objc final public var traceId: Sentry.SentryId + @objc final public var level: Sentry.SentryLog.Level + @objc final public var body: Swift.String + @objc final public var attributes: [Swift.String : Sentry.SentryLog.Attribute] + @objc final public var severityNumber: Foundation.NSNumber? + @objc deinit +} +@_spi(Private) extension Sentry.SentryLog : Swift.Codable { + @_spi(Private) convenience public init(from decoder: any Swift.Decoder) throws + @_spi(Private) final public func encode(to encoder: any Swift.Encoder) throws +} +@_spi(Private) @_inheritsConvenienceInitializers @objc final public class LoadValidator : ObjectiveC.NSObject { + @_spi(Private) @objc final public class func checkForDuplicatedSDK(imageName: Swift.String, imageAddress: Foundation.NSNumber, imageSize: Foundation.NSNumber, dispatchQueueWrapper: Sentry.SentryDispatchQueueWrapper) + @_spi(Private) @objc override dynamic public init() + @_spi(Private) @objc deinit +} @_spi(Private) @objc @_hasMissingDesignatedInitializers @objcMembers public class SentryReplayRecording : ObjectiveC.NSObject { @_spi(Private) @objc convenience public init(segmentId: Swift.Int, video: Sentry.SentryVideoInfo, extraEvents: [any Sentry.SentryRRWebEventProtocol]) @_spi(Private) @objc public func headerForReplayRecording() -> [Swift.String : Any] @@ -145,6 +187,28 @@ extension Foundation.FileManager { @_spi(Private) @objc override dynamic public init() @_spi(Private) @objc deinit } +@objc final public class SentryLogger : ObjectiveC.NSObject { + @_spi(Private) public init(hub: Sentry.SentryHub, dateProvider: any Sentry.SentryCurrentDateProvider, batcher: Sentry.SentryLogBatcher?) + final public func trace(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(trace:) final public func trace(_ body: Swift.String) + @objc(trace:attributes:) final public func trace(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func debug(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(debug:) final public func debug(_ body: Swift.String) + @objc(debug:attributes:) final public func debug(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func info(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(info:) final public func info(_ body: Swift.String) + @objc(info:attributes:) final public func info(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func warn(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(warn:) final public func warn(_ body: Swift.String) + @objc(warn:attributes:) final public func warn(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func error(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(error:) final public func error(_ body: Swift.String) + @objc(error:attributes:) final public func error(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func fatal(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(fatal:) final public func fatal(_ body: Swift.String) + @objc(fatal:attributes:) final public func fatal(_ body: Swift.String, attributes: [Swift.String : Any]) + @objc deinit +} @_spi(Private) @objc @_hasMissingDesignatedInitializers @objcMembers public class SentryVideoInfo : ObjectiveC.NSObject { @_spi(Private) @objc final public let path: Foundation.URL @_spi(Private) @objc final public let start: Foundation.Date @@ -352,6 +416,85 @@ extension Sentry.SentryMessage : Swift.Decodable { @_spi(Private) @objc public init(minDuration: Foundation.TimeInterval, maxDuration: Foundation.TimeInterval) @_spi(Private) @objc deinit } +@_inheritsConvenienceInitializers @objc open class SentrySDK : ObjectiveC.NSObject { + @objc public static var span: (any Sentry.Span)? { + @objc get + } + @objc public static var isEnabled: Swift.Bool { + @objc get + } + @objc public static var replay: Sentry.SentryReplayApi { + @objc get + } + @objc public static var logger: Sentry.SentryLogger { + @objc get + } + @objc public static func start(options: Sentry.Options) + @objc public static func start(configureOptions: @escaping (Sentry.Options) -> Swift.Void) + @discardableResult + @objc(captureEvent:) public static func capture(event: Sentry.Event) -> Sentry.SentryId + @discardableResult + @objc(captureEvent:withScope:) public static func capture(event: Sentry.Event, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureEvent:withScopeBlock:) public static func capture(event: Sentry.Event, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc public static func startTransaction(name: Swift.String, operation: Swift.String) -> any Sentry.Span + @discardableResult + @objc public static func startTransaction(name: Swift.String, operation: Swift.String, bindToScope: Swift.Bool) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:bindToScope:) public static func startTransaction(transactionContext: Sentry.TransactionContext, bindToScope: Swift.Bool) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:bindToScope:customSamplingContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext, bindToScope: Swift.Bool, customSamplingContext: [Swift.String : Any]) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:customSamplingContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext, customSamplingContext: [Swift.String : Any]) -> any Sentry.Span + @discardableResult + @objc(captureError:) public static func capture(error: any Swift.Error) -> Sentry.SentryId + @discardableResult + @objc(captureError:withScope:) public static func capture(error: any Swift.Error, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureError:withScopeBlock:) public static func capture(error: any Swift.Error, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc(captureException:) public static func capture(exception: Foundation.NSException) -> Sentry.SentryId + @discardableResult + @objc(captureException:withScope:) public static func capture(exception: Foundation.NSException, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureException:withScopeBlock:) public static func capture(exception: Foundation.NSException, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:) public static func capture(message: Swift.String) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:withScope:) public static func capture(message: Swift.String, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:withScopeBlock:) public static func capture(message: Swift.String, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @available(*, deprecated, message: "Use SentrySDK.back or use or configure our new managed UX with SentryOptions.configureUserFeedback.") + @objc(captureUserFeedback:) public static func capture(userFeedback: Sentry.UserFeedback) + @objc(captureFeedback:) public static func capture(feedback: Sentry.SentryFeedback) + @available(iOS 13.0, *) + @objc public static let feedback: Sentry.SentryFeedbackAPI + @objc(addBreadcrumb:) public static func addBreadcrumb(_ crumb: Sentry.Breadcrumb) + @objc(configureScope:) public static func configureScope(_ callback: @escaping (Sentry.Scope) -> Swift.Void) + @objc public static var crashedLastRun: Swift.Bool { + @objc get + } + @objc public static var detectedStartUpCrash: Swift.Bool { + @objc get + } + @objc public static func setUser(_ user: Sentry.User?) + @objc public static func startSession() + @objc public static func endSession() + @objc public static func crash() + @objc public static func reportFullyDisplayed() + @objc public static func pauseAppHangTracking() + @objc public static func resumeAppHangTracking() + @objc(flush:) public static func flush(timeout: Foundation.TimeInterval) + @objc public static func close() + @objc public static func startProfiler() + @objc public static func stopProfiler() + @_spi(Private) @objc public static func clearLogger() + @objc override dynamic public init() + @objc deinit +} @_spi(Private) @available(iOS 15.0, macOS 12.0, macCatalyst 15.0, *) @available(tvOS, unavailable) @available(watchOS, unavailable) @@ -471,7 +614,7 @@ extension Sentry.SentryLevel : Swift.CustomStringConvertible { } @_spi(Private) @objc @_inheritsConvenienceInitializers @objcMembers public class SentryLevelHelper : ObjectiveC.NSObject { @_spi(Private) @objc public static func nameForLevel(_ level: Sentry.SentryLevel) -> Swift.String - @_spi(Private) @objc public static func levelForName(_ name: Swift.String) -> Sentry.SentryLevel + @_spi(Private) @objc public static func levelForName(_ name: Swift.String?) -> Sentry.SentryLevel @_spi(Private) @objc override dynamic public init() @_spi(Private) @objc deinit } @@ -534,6 +677,7 @@ extension Swift.FixedWidthInteger { @objc public var enableDataSwizzling: Swift.Bool @objc public var enableFileManagerSwizzling: Swift.Bool @objc public var enableUnhandledCPPExceptionsV2: Swift.Bool + @objc public var enableLogs: Swift.Bool @_spi(Private) @objc public func validateOptions(_ options: [Swift.String : Any]?) @objc override dynamic public init() @objc deinit @@ -574,6 +718,12 @@ extension Swift.FixedWidthInteger { @_spi(Private) @objc override dynamic public init() @_spi(Private) @objc deinit } +@_spi(Private) @_inheritsConvenienceInitializers @objc(SentryDependencies) final public class Dependencies : ObjectiveC.NSObject { + @_spi(Private) @objc public static let dispatchQueueWrapper: Sentry.SentryDispatchQueueWrapper + @_spi(Private) @objc public static let dateProvider: Sentry.SentryDefaultCurrentDateProvider + @_spi(Private) @objc override dynamic public init() + @_spi(Private) @objc deinit +} @_spi(Private) @objc @objcMembers public class SentryWatchdogTerminationAttributesProcessor : ObjectiveC.NSObject { @_spi(Private) @objc public init(withDispatchQueueWrapper dispatchQueueWrapper: Sentry.SentryDispatchQueueWrapper, scopePersistentStore: Sentry.SentryScopePersistentStore) @_spi(Private) @objc public func clear() @@ -672,6 +822,7 @@ extension Sentry.SentryNSError : Swift.Decodable { @_spi(Private) @objc func capture(feedback: Sentry.SentryFeedback) } @_spi(Private) @objc @available(iOS 13.0, *) +@available(iOSApplicationExtension, unavailable) @objcMembers public class SentryUserFeedbackIntegrationDriver : ObjectiveC.NSObject { @_spi(Private) @objc public init(configuration: Sentry.SentryUserFeedbackConfiguration, delegate: any Sentry.SentryUserFeedbackIntegrationDriverDelegate, screenshotProvider: Sentry.SentryScreenshot) @_spi(Private) @objc deinit @@ -679,6 +830,7 @@ extension Sentry.SentryNSError : Swift.Decodable { @_spi(Private) @objc public func hideWidget() } @_spi(Private) @available(iOS 13.0, *) +@available(iOSApplicationExtension, unavailable) extension Sentry.SentryUserFeedbackIntegrationDriver : UIKit.UIAdaptivePresentationControllerDelegate { @_spi(Private) @_Concurrency.MainActor(unsafe) @objc dynamic public func presentationControllerDidDismiss(_ presentationController: UIKit.UIPresentationController) } @@ -697,6 +849,46 @@ public enum SentryRedactRegionType : Swift.String, Swift.Codable { get } } +extension Sentry.SentryLog { + @objc(SentryStructuredLogLevel) public enum Level : Swift.Int { + case trace + case debug + case info + case warn + case error + case fatal + public init(value: Swift.String) throws + public var value: Swift.String { + get + } + public func toSeverityNumber() -> Swift.Int + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } + } +} +@_spi(Private) extension Sentry.SentryLog.Level : Swift.Codable { + @_spi(Private) public init(from decoder: any Swift.Decoder) throws + @_spi(Private) public func encode(to encoder: any Swift.Encoder) throws +} +extension Sentry.SentryLog { + @_hasMissingDesignatedInitializers @objc(SentryStructuredLogAttribute) @objcMembers final public class Attribute : ObjectiveC.NSObject { + @objc final public let type: Swift.String + @objc final public let value: Any + @objc public init(string value: Swift.String) + @objc public init(boolean value: Swift.Bool) + @objc public init(integer value: Swift.Int) + @objc public init(double value: Swift.Double) + @objc public init(float value: Swift.Float) + @objc deinit + } +} +@_spi(Private) extension Sentry.SentryLog.Attribute : Swift.Codable { + @_spi(Private) convenience public init(from decoder: any Swift.Decoder) throws + @_spi(Private) final public func encode(to encoder: any Swift.Encoder) throws +} @_spi(Private) @objc public class SentryScopePersistentStore : ObjectiveC.NSObject { @_spi(Private) @objc public init?(fileManager: (any Sentry.SentryFileManagerProtocol)?) @_spi(Private) @objc public func moveAllCurrentStateToPreviousState() @@ -783,8 +975,19 @@ extension Foundation.Data { @_spi(Private) @objc public func trackTouchFrom(event: UIKit.UIEvent) @_spi(Private) @objc deinit } +@_spi(Private) @objc public protocol SentryNSNotificationCenterWrapper { + @_spi(Private) @objc func addObserver(_ observer: Any, selector aSelector: ObjectiveC.Selector, name aName: Foundation.NSNotification.Name?, object anObject: Any?) + #if compiler(>=5.3) && $Sendable + @_spi(Private) @objc(addObserverForName:object:queue:usingBlock:) func addObserver(forName name: Foundation.NSNotification.Name?, object obj: Any?, queue: Foundation.OperationQueue?, using block: @escaping @Sendable (Foundation.Notification) -> Swift.Void) -> any ObjectiveC.NSObjectProtocol + #endif + @_spi(Private) @objc func removeObserver(_ observer: Any, name aName: Foundation.NSNotification.Name?, object anObject: Any?) + @_spi(Private) @objc(postNotification:) func post(_ notification: Foundation.Notification) +} +@_spi(Private) @objc extension Foundation.NotificationCenter : Sentry.SentryNSNotificationCenterWrapper { +} @_spi(Private) @objc @_inheritsConvenienceInitializers @objcMembers public class SentryEnabledFeaturesBuilder : ObjectiveC.NSObject { - @_spi(Private) @objc public static func getEnabledFeatures(options: Sentry.Options?) -> [Swift.String] + @_spi(Private) @objc @available(*, deprecated, message: "This is only marked as deprecated because enableAppLaunchProfiling is marked as deprecated. Once that is removed this can be removed.") + public static func getEnabledFeatures(options: Sentry.Options?) -> [Swift.String] @_spi(Private) @objc override dynamic public init() @_spi(Private) @objc deinit } @@ -808,6 +1011,7 @@ extension Foundation.Data { @_spi(Private) @objc public func dispatchSyncOnMainQueue(_ block: @escaping () -> Swift.Void, timeout: Swift.Double) @_spi(Private) @objc public func dispatch(after interval: Foundation.TimeInterval, block: @escaping () -> Swift.Void) @_spi(Private) @objc public func dispatchOnce(_ predicate: Swift.UnsafeMutablePointer, block: @escaping () -> Swift.Void) + @_spi(Private) public func dispatch(after interval: Foundation.TimeInterval, workItem: Dispatch.DispatchWorkItem) @_spi(Private) @objc public var shouldDispatchCancel: Swift.Bool { @_spi(Private) @objc get } @@ -832,6 +1036,11 @@ extension Foundation.Data { @_spi(Private) @objc public func createVideoWith(beginning: Foundation.Date, end: Foundation.Date) -> [Sentry.SentryVideoInfo] @_spi(Private) @objc deinit } +@_spi(Private) @objc @objcMembers public class SentryLogBatcher : ObjectiveC.NSObject { + @_spi(Private) @objc public init(client: Sentry.SentryClient, flushTimeout: Foundation.TimeInterval, maxBufferSizeBytes: Swift.Int, dispatchQueue: Sentry.SentryDispatchQueueWrapper) + @_spi(Private) @objc convenience public init(client: Sentry.SentryClient, dispatchQueue: Sentry.SentryDispatchQueueWrapper) + @_spi(Private) @objc deinit +} extension Sentry.DebugMeta : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } @@ -862,3 +1071,6 @@ extension Sentry.SentryLevel : Swift.RawRepresentable {} extension Sentry.SentryRedactRegionType : Swift.Equatable {} extension Sentry.SentryRedactRegionType : Swift.Hashable {} extension Sentry.SentryRedactRegionType : Swift.RawRepresentable {} +extension Sentry.SentryLog.Level : Swift.Equatable {} +extension Sentry.SentryLog.Level : Swift.Hashable {} +extension Sentry.SentryLog.Level : Swift.RawRepresentable {} diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftdoc b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftdoc index 7c6f325..5bc1660 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftdoc and b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftinterface b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftinterface index 1c986f1..c33a9ca 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftinterface +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64-apple-ios.swiftinterface @@ -1,14 +1,17 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) -// swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name Sentry +// swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name Sentry // swift-module-flags-ignorable: -enable-bare-slash-regex import AVFoundation import CoreGraphics import CoreMedia +import Darwin import Foundation +import MachO import MetricKit import ObjectiveC.NSObjCRuntime import ObjectiveC +import PDFKit @_exported import Sentry import Swift import UIKit @@ -37,6 +40,8 @@ extension Sentry.User : Swift.Decodable { @objc deinit } extension Sentry.SentryFeedback : Sentry.SentrySerializable { +} +extension Sentry.SentryFeedback { @objc dynamic public func serialize() -> [Swift.String : Any] } @objc(SentryEventDecodable) open class SentryEventDecodable : Sentry.Event, Swift.Decodable { @@ -56,6 +61,24 @@ extension Sentry.SentryFeedback : Sentry.SentrySerializable { @objc open func serialize() -> [Swift.String : Any] @objc deinit } +public struct SentryLogMessage : Swift.ExpressibleByStringInterpolation { + public init(stringLiteral value: Swift.String) + public init(stringInterpolation: Sentry.SentryLogMessage.StringInterpolation) + public struct StringInterpolation : Swift.StringInterpolationProtocol { + public init(literalCapacity: Swift.Int, interpolationCount: Swift.Int) + public mutating func appendLiteral(_ literal: Swift.String) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.String) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Bool) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Int) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Double) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Float) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> T) where T : Swift.CustomStringConvertible + public typealias StringLiteralType = Swift.String + } + public typealias ExtendedGraphemeClusterLiteralType = Swift.String + public typealias StringLiteralType = Swift.String + public typealias UnicodeScalarLiteralType = Swift.String +} extension Sentry.Frame : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } @@ -65,6 +88,15 @@ extension Sentry.SentryThread : Swift.Decodable { extension Sentry.Geo : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } +@_hasMissingDesignatedInitializers @objc @objcMembers final public class SentryLog : ObjectiveC.NSObject { + @objc final public var timestamp: Foundation.Date + @objc final public var traceId: Sentry.SentryId + @objc final public var level: Sentry.SentryLog.Level + @objc final public var body: Swift.String + @objc final public var attributes: [Swift.String : Sentry.SentryLog.Attribute] + @objc final public var severityNumber: Foundation.NSNumber? + @objc deinit +} extension Foundation.FileManager { public func createFileWithSentryTracing(atPath path: Swift.String, contents data: Foundation.Data?, attributes attr: [Foundation.FileAttributeKey : Any]? = nil) -> Swift.Bool public func removeItemWithSentryTracing(at url: Foundation.URL) throws @@ -74,6 +106,27 @@ extension Foundation.FileManager { public func moveItemWithSentryTracing(at srcURL: Foundation.URL, to dstURL: Foundation.URL) throws public func moveItemWithSentryTracing(atPath srcPath: Swift.String, toPath dstPath: Swift.String) throws } +@objc final public class SentryLogger : ObjectiveC.NSObject { + final public func trace(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(trace:) final public func trace(_ body: Swift.String) + @objc(trace:attributes:) final public func trace(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func debug(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(debug:) final public func debug(_ body: Swift.String) + @objc(debug:attributes:) final public func debug(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func info(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(info:) final public func info(_ body: Swift.String) + @objc(info:attributes:) final public func info(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func warn(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(warn:) final public func warn(_ body: Swift.String) + @objc(warn:attributes:) final public func warn(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func error(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(error:) final public func error(_ body: Swift.String) + @objc(error:attributes:) final public func error(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func fatal(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(fatal:) final public func fatal(_ body: Swift.String) + @objc(fatal:attributes:) final public func fatal(_ body: Swift.String, attributes: [Swift.String : Any]) + @objc deinit +} extension Sentry.MechanismMeta : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } @@ -188,6 +241,84 @@ extension Sentry.SentryMessage : Swift.Decodable { } @objc deinit } +@_inheritsConvenienceInitializers @objc open class SentrySDK : ObjectiveC.NSObject { + @objc public static var span: (any Sentry.Span)? { + @objc get + } + @objc public static var isEnabled: Swift.Bool { + @objc get + } + @objc public static var replay: Sentry.SentryReplayApi { + @objc get + } + @objc public static var logger: Sentry.SentryLogger { + @objc get + } + @objc public static func start(options: Sentry.Options) + @objc public static func start(configureOptions: @escaping (Sentry.Options) -> Swift.Void) + @discardableResult + @objc(captureEvent:) public static func capture(event: Sentry.Event) -> Sentry.SentryId + @discardableResult + @objc(captureEvent:withScope:) public static func capture(event: Sentry.Event, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureEvent:withScopeBlock:) public static func capture(event: Sentry.Event, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc public static func startTransaction(name: Swift.String, operation: Swift.String) -> any Sentry.Span + @discardableResult + @objc public static func startTransaction(name: Swift.String, operation: Swift.String, bindToScope: Swift.Bool) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:bindToScope:) public static func startTransaction(transactionContext: Sentry.TransactionContext, bindToScope: Swift.Bool) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:bindToScope:customSamplingContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext, bindToScope: Swift.Bool, customSamplingContext: [Swift.String : Any]) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:customSamplingContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext, customSamplingContext: [Swift.String : Any]) -> any Sentry.Span + @discardableResult + @objc(captureError:) public static func capture(error: any Swift.Error) -> Sentry.SentryId + @discardableResult + @objc(captureError:withScope:) public static func capture(error: any Swift.Error, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureError:withScopeBlock:) public static func capture(error: any Swift.Error, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc(captureException:) public static func capture(exception: Foundation.NSException) -> Sentry.SentryId + @discardableResult + @objc(captureException:withScope:) public static func capture(exception: Foundation.NSException, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureException:withScopeBlock:) public static func capture(exception: Foundation.NSException, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:) public static func capture(message: Swift.String) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:withScope:) public static func capture(message: Swift.String, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:withScopeBlock:) public static func capture(message: Swift.String, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @available(*, deprecated, message: "Use SentrySDK.back or use or configure our new managed UX with SentryOptions.configureUserFeedback.") + @objc(captureUserFeedback:) public static func capture(userFeedback: Sentry.UserFeedback) + @objc(captureFeedback:) public static func capture(feedback: Sentry.SentryFeedback) + @available(iOS 13.0, *) + @objc public static let feedback: Sentry.SentryFeedbackAPI + @objc(addBreadcrumb:) public static func addBreadcrumb(_ crumb: Sentry.Breadcrumb) + @objc(configureScope:) public static func configureScope(_ callback: @escaping (Sentry.Scope) -> Swift.Void) + @objc public static var crashedLastRun: Swift.Bool { + @objc get + } + @objc public static var detectedStartUpCrash: Swift.Bool { + @objc get + } + @objc public static func setUser(_ user: Sentry.User?) + @objc public static func startSession() + @objc public static func endSession() + @objc public static func crash() + @objc public static func reportFullyDisplayed() + @objc public static func pauseAppHangTracking() + @objc public static func resumeAppHangTracking() + @objc(flush:) public static func flush(timeout: Foundation.TimeInterval) + @objc public static func close() + @objc public static func startProfiler() + @objc public static func stopProfiler() + @objc override dynamic public init() + @objc deinit +} @objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SentryRedactViewHelper : ObjectiveC.NSObject { @objc public static func clipOutView(_ view: UIKit.UIView) @objc public static func maskSwiftUI(_ view: UIKit.UIView) @@ -248,6 +379,7 @@ extension Swift.FixedWidthInteger { @objc public var enableDataSwizzling: Swift.Bool @objc public var enableFileManagerSwizzling: Swift.Bool @objc public var enableUnhandledCPPExceptionsV2: Swift.Bool + @objc public var enableLogs: Swift.Bool @objc override dynamic public init() @objc deinit } @@ -324,6 +456,38 @@ public enum SentryRedactRegionType : Swift.String, Swift.Codable { get } } +extension Sentry.SentryLog { + @objc(SentryStructuredLogLevel) public enum Level : Swift.Int { + case trace + case debug + case info + case warn + case error + case fatal + public init(value: Swift.String) throws + public var value: Swift.String { + get + } + public func toSeverityNumber() -> Swift.Int + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } + } +} +extension Sentry.SentryLog { + @_hasMissingDesignatedInitializers @objc(SentryStructuredLogAttribute) @objcMembers final public class Attribute : ObjectiveC.NSObject { + @objc final public let type: Swift.String + @objc final public let value: Any + @objc public init(string value: Swift.String) + @objc public init(boolean value: Swift.Bool) + @objc public init(integer value: Swift.Int) + @objc public init(double value: Swift.Double) + @objc public init(float value: Swift.Float) + @objc deinit + } +} extension Foundation.Data { public init(contentsOfWithSentryTracing url: Foundation.URL, options: Foundation.Data.ReadingOptions = []) throws public func writeWithSentryTracing(to url: Foundation.URL, options: Foundation.Data.WritingOptions = []) throws @@ -398,3 +562,6 @@ extension Sentry.SentryLevel : Swift.RawRepresentable {} extension Sentry.SentryRedactRegionType : Swift.Equatable {} extension Sentry.SentryRedactRegionType : Swift.Hashable {} extension Sentry.SentryRedactRegionType : Swift.RawRepresentable {} +extension Sentry.SentryLog.Level : Swift.Equatable {} +extension Sentry.SentryLog.Level : Swift.Hashable {} +extension Sentry.SentryLog.Level : Swift.RawRepresentable {} diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.abi.json b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.abi.json index 9c52712..96f4812 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.abi.json +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.abi.json @@ -746,6 +746,106 @@ "name": "SentryRRWebEvent", "printedName": "SentryRRWebEvent", "children": [ + { + "kind": "Var", + "name": "data", + "printedName": "data", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryRRWebEvent(py)data", + "mangledName": "$s6Sentry0A10RRWebEventC4dataSDySSypGSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryRRWebEvent(im)data", + "mangledName": "$s6Sentry0A10RRWebEventC4dataSDySSypGSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] + }, { "kind": "Function", "name": "serialize", @@ -1552,6 +1652,16 @@ } ] }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, { "kind": "Import", "name": "Foundation", @@ -2233,8 +2343,7 @@ "objc_name": "SentryEventDecodable", "declAttributes": [ "AccessControl", - "ObjC", - "RawDocComment" + "ObjC" ], "superclassUsr": "c:objc(cs)SentryEvent", "superclassNames": [ @@ -2846,6 +2955,505 @@ } ] }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryLogMessage", + "printedName": "SentryLogMessage", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(stringLiteral:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A10LogMessageV13stringLiteralACSS_tcfc", + "mangledName": "$s6Sentry0A10LogMessageV13stringLiteralACSS_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(stringInterpolation:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "StringInterpolation", + "printedName": "Sentry.SentryLogMessage.StringInterpolation", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A10LogMessageV19stringInterpolationA2C06StringE0V_tcfc", + "mangledName": "$s6Sentry0A10LogMessageV19stringInterpolationA2C06StringE0V_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "TypeDecl", + "name": "StringInterpolation", + "printedName": "StringInterpolation", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(literalCapacity:interpolationCount:)", + "children": [ + { + "kind": "TypeNominal", + "name": "StringInterpolation", + "printedName": "Sentry.SentryLogMessage.StringInterpolation", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV15literalCapacity18interpolationCountAESi_Sitcfc", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV15literalCapacity18interpolationCountAESi_Sitcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "appendLiteral", + "printedName": "appendLiteral(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV13appendLiteralyySSF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV13appendLiteralyySSF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.String", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySSyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySSyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.Bool", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySbyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySbyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.Int", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySiyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySiyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.Double", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySdyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySdyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> Swift.Float", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySfyXAF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yySfyXAF", + "moduleName": "Sentry", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + }, + { + "kind": "Function", + "name": "appendInterpolation", + "printedName": "appendInterpolation(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> τ_0_0", + "children": [ + { + "kind": "TypeNominal", + "name": "GenericTypeParam", + "printedName": "τ_0_0" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV06appendE0yyxyXAs06CustomD11ConvertibleRzlF", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV06appendE0yyxyXAs06CustomD11ConvertibleRzlF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Swift.CustomStringConvertible>", + "sugared_genericSig": "", + "declAttributes": [ + "Mutating", + "AccessControl" + ], + "funcSelfKind": "Mutating" + } + ], + "declKind": "Struct", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV", + "mangledName": "$s6Sentry0A10LogMessageV19StringInterpolationV", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "StringInterpolationProtocol", + "printedName": "StringInterpolationProtocol", + "children": [ + { + "kind": "TypeWitness", + "name": "StringLiteralType", + "printedName": "StringLiteralType", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ], + "usr": "s:s27StringInterpolationProtocolP", + "mangledName": "$ss27StringInterpolationProtocolP" + } + ] + } + ], + "declKind": "Struct", + "usr": "s:6Sentry0A10LogMessageV", + "mangledName": "$s6Sentry0A10LogMessageV", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "ExpressibleByStringInterpolation", + "printedName": "ExpressibleByStringInterpolation", + "children": [ + { + "kind": "TypeWitness", + "name": "StringInterpolation", + "printedName": "StringInterpolation", + "children": [ + { + "kind": "TypeNominal", + "name": "StringInterpolation", + "printedName": "Sentry.SentryLogMessage.StringInterpolation", + "usr": "s:6Sentry0A10LogMessageV19StringInterpolationV" + } + ] + } + ], + "usr": "s:s32ExpressibleByStringInterpolationP", + "mangledName": "$ss32ExpressibleByStringInterpolationP" + }, + { + "kind": "Conformance", + "name": "ExpressibleByStringLiteral", + "printedName": "ExpressibleByStringLiteral", + "children": [ + { + "kind": "TypeWitness", + "name": "StringLiteralType", + "printedName": "StringLiteralType", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ], + "usr": "s:s26ExpressibleByStringLiteralP", + "mangledName": "$ss26ExpressibleByStringLiteralP" + }, + { + "kind": "Conformance", + "name": "ExpressibleByExtendedGraphemeClusterLiteral", + "printedName": "ExpressibleByExtendedGraphemeClusterLiteral", + "children": [ + { + "kind": "TypeWitness", + "name": "ExtendedGraphemeClusterLiteralType", + "printedName": "ExtendedGraphemeClusterLiteralType", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ], + "usr": "s:s43ExpressibleByExtendedGraphemeClusterLiteralP", + "mangledName": "$ss43ExpressibleByExtendedGraphemeClusterLiteralP" + }, + { + "kind": "Conformance", + "name": "ExpressibleByUnicodeScalarLiteral", + "printedName": "ExpressibleByUnicodeScalarLiteral", + "children": [ + { + "kind": "TypeWitness", + "name": "UnicodeScalarLiteralType", + "printedName": "UnicodeScalarLiteralType", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ] + } + ], + "usr": "s:s33ExpressibleByUnicodeScalarLiteralP", + "mangledName": "$ss33ExpressibleByUnicodeScalarLiteralP" + } + ] + }, { "kind": "Import", "name": "_SentryPrivate", @@ -2914,89 +3522,416 @@ "declKind": "Import", "moduleName": "Sentry" }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "TypeDecl", - "name": "SentryReplayRecording", - "printedName": "SentryReplayRecording", + "name": "SentryLog", + "printedName": "SentryLog", "children": [ { - "kind": "Constructor", - "name": "init", - "printedName": "init(segmentId:video:extraEvents:)", + "kind": "Var", + "name": "timestamp", + "printedName": "timestamp", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayRecording", - "printedName": "Sentry.SentryReplayRecording", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)timestamp", + "mangledName": "$s6Sentry0A3LogC9timestamp10Foundation4DateVvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)timestamp", + "mangledName": "$s6Sentry0A3LogC9timestamp10Foundation4DateVvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setTimestamp:", + "mangledName": "$s6Sentry0A3LogC9timestamp10Foundation4DateVvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC9timestamp10Foundation4DateVvM", + "mangledName": "$s6Sentry0A3LogC9timestamp10Foundation4DateVvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "traceId", + "printedName": "traceId", + "children": [ { "kind": "TypeNominal", - "name": "SentryVideoInfo", - "printedName": "Sentry.SentryVideoInfo", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)traceId", + "mangledName": "$s6Sentry0A3LogC7traceIdAA0aD0Cvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)traceId", + "mangledName": "$s6Sentry0A3LogC7traceIdAA0aD0Cvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[Sentry.SentryRRWebEventProtocol]", + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", "children": [ { "kind": "TypeNominal", - "name": "SentryRRWebEventProtocol", - "printedName": "Sentry.SentryRRWebEventProtocol", - "usr": "c:@M@Sentry@objc(pl)SentryRRWebEvent" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" } ], - "usr": "s:Sa" + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setTraceId:", + "mangledName": "$s6Sentry0A3LogC7traceIdAA0aD0Cvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC7traceIdAA0aD0CvM", + "mangledName": "$s6Sentry0A3LogC7traceIdAA0aD0CvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "level", + "printedName": "level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)initWithSegmentId:video:extraEvents:", - "mangledName": "$s6Sentry0A15ReplayRecordingC9segmentId5video11extraEventsACSi_AA0A9VideoInfoCSayAA0A18RRWebEventProtocol_pGtcfc", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)level", + "mangledName": "$s6Sentry0A3LogC5levelAC5LevelOvp", "moduleName": "Sentry", "declAttributes": [ - "Convenience", + "Final", + "HasStorage", "AccessControl", + "RawDocComment", "ObjC" ], - "spi_group_names": [ - "Private" + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)level", + "mangledName": "$s6Sentry0A3LogC5levelAC5LevelOvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setLevel:", + "mangledName": "$s6Sentry0A3LogC5levelAC5LevelOvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC5levelAC5LevelOvM", + "mangledName": "$s6Sentry0A3LogC5levelAC5LevelOvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "body", + "printedName": "body", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } ], - "init_kind": "Convenience" + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)body", + "mangledName": "$s6Sentry0A3LogC4bodySSvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)body", + "mangledName": "$s6Sentry0A3LogC4bodySSvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setBody:", + "mangledName": "$s6Sentry0A3LogC4bodySSvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC4bodySSvM", + "mangledName": "$s6Sentry0A3LogC4bodySSvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] }, { - "kind": "Function", - "name": "headerForReplayRecording", - "printedName": "headerForReplayRecording()", + "kind": "Var", + "name": "attributes", + "printedName": "attributes", "children": [ { "kind": "TypeNominal", "name": "Dictionary", - "printedName": "[Swift.String : Any]", + "printedName": "[Swift.String : Sentry.SentryLog.Attribute]", "children": [ { "kind": "TypeNominal", @@ -3006,40 +3941,36 @@ }, { "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" } ], "usr": "s:SD" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)headerForReplayRecording", - "mangledName": "$s6Sentry0A15ReplayRecordingC09headerForbC0SDySSypGyF", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)attributes", + "mangledName": "$s6Sentry0A3LogC10attributesSDySSAC9AttributeCGvp", "moduleName": "Sentry", "declAttributes": [ + "Final", + "HasStorage", "AccessControl", + "RawDocComment", "ObjC" ], - "spi_group_names": [ - "Private" - ], - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "serialize", - "printedName": "serialize()", - "children": [ + "hasStorage": true, + "accessors": [ { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[[Swift.String : Any]]", + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", "name": "Dictionary", - "printedName": "[Swift.String : Any]", + "printedName": "[Swift.String : Sentry.SentryLog.Attribute]", "children": [ { "kind": "TypeNominal", @@ -3049,242 +3980,278 @@ }, { "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" } ], "usr": "s:SD" } ], - "usr": "s:Sa" + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)attributes", + "mangledName": "$s6Sentry0A3LogC10attributesSDySSAC9AttributeCGvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Sentry.SentryLog.Attribute]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setAttributes:", + "mangledName": "$s6Sentry0A3LogC10attributesSDySSAC9AttributeCGvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC10attributesSDySSAC9AttributeCGvM", + "mangledName": "$s6Sentry0A3LogC10attributesSDySSAC9AttributeCGvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)serialize", - "mangledName": "$s6Sentry0A15ReplayRecordingC9serializeSaySDySSypGGyF", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "funcSelfKind": "NonMutating" + ] }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Var", + "name": "severityNumber", + "printedName": "severityNumber", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayRecording", - "printedName": "Sentry.SentryReplayRecording", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" + "name": "Optional", + "printedName": "Foundation.NSNumber?", + "children": [ + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + } + ], + "usr": "s:Sq" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)init", - "mangledName": "$s6Sentry0A15ReplayRecordingCACycfc", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryLog(py)severityNumber", + "mangledName": "$s6Sentry0A3LogC14severityNumberSo8NSNumberCSgvp", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", "declAttributes": [ - "Dynamic", - "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording", - "mangledName": "$s6Sentry0A15ReplayRecordingC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "hasMissingDesignatedInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNumber?", + "children": [ + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)severityNumber", + "mangledName": "$s6Sentry0A3LogC14severityNumberSo8NSNumberCSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNumber?", + "children": [ + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)setSeverityNumber:", + "mangledName": "$s6Sentry0A3LogC14severityNumberSo8NSNumberCSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC14severityNumberSo8NSNumberCSgvM", + "mangledName": "$s6Sentry0A3LogC14severityNumberSo8NSNumberCSgvM", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "_modify" + } + ] }, { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentrySessionReplayDelegate", - "printedName": "SentrySessionReplayDelegate", - "children": [ - { - "kind": "Function", - "name": "sessionReplayShouldCaptureReplayForError", - "printedName": "sessionReplayShouldCaptureReplayForError()", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "SentryLog", + "printedName": "Sentry.SentryLog", + "usr": "c:@M@Sentry@objc(cs)SentryLog" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayShouldCaptureReplayForError", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionc13ShouldCaptureC8ForErrorSbyF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLog(im)init", + "mangledName": "$s6Sentry0A3LogCACycfc", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Dynamic", + "ObjC", + "Override" ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" + "init_kind": "Designated" }, { - "kind": "Function", - "name": "sessionReplayNewSegment", - "printedName": "sessionReplayNewSegment(replayEvent:replayRecording:videoUrl:)", + "kind": "Constructor", + "name": "init", + "printedName": "init(from:)", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryReplayEvent", - "printedName": "Sentry.SentryReplayEvent", - "usr": "c:@M@Sentry@objc(cs)SentryReplayEvent" - }, - { - "kind": "TypeNominal", - "name": "SentryReplayRecording", - "printedName": "Sentry.SentryReplayRecording", - "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" + "name": "SentryLog", + "printedName": "Sentry.SentryLog", + "usr": "c:@M@Sentry@objc(cs)SentryLog" }, { "kind": "TypeNominal", - "name": "URL", - "printedName": "Foundation.URL", - "usr": "s:10Foundation3URLV" + "name": "Decoder", + "printedName": "Swift.Decoder", + "usr": "s:s7DecoderP" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayNewSegmentWithReplayEvent:replayRecording:videoUrl:", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionC10NewSegment11replayEvent0H9Recording8videoUrlyAA0acI0C_AA0acJ0C10Foundation3URLVtF", + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC4fromACs7Decoder_p_tKcfc", + "mangledName": "$s6Sentry0A3LogC4fromACs7Decoder_p_tKcfc", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, "declAttributes": [ - "ObjC" + "Convenience", + "AccessControl", + "SPIAccessControl" ], + "isFromExtension": true, "spi_group_names": [ "Private" ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" + "throwing": true, + "init_kind": "Convenience" }, { "kind": "Function", - "name": "sessionReplayStarted", - "printedName": "sessionReplayStarted(replayId:)", + "name": "encode", + "printedName": "encode(to:)", "children": [ { "kind": "TypeNominal", @@ -3293,528 +4260,1008 @@ }, { "kind": "TypeNominal", - "name": "SentryId", - "printedName": "Sentry.SentryId", - "usr": "c:@M@Sentry@objc(cs)SentryId" + "name": "Encoder", + "printedName": "Swift.Encoder", + "usr": "s:s7EncoderP" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayStartedWithReplayId:", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionC7Started8replayIdyAA0aH0C_tF", + "usr": "s:6Sentry0A3LogC6encode2toys7Encoder_p_tKF", + "mangledName": "$s6Sentry0A3LogC6encode2toys7Encoder_p_tKF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, "declAttributes": [ - "ObjC" + "Final", + "AccessControl", + "SPIAccessControl" ], + "isFromExtension": true, "spi_group_names": [ "Private" ], - "reqNewWitnessTableEntry": true, + "throwing": true, "funcSelfKind": "NonMutating" }, { - "kind": "Function", - "name": "breadcrumbsForSessionReplay", - "printedName": "breadcrumbsForSessionReplay()", + "kind": "TypeDecl", + "name": "Level", + "printedName": "Level", "children": [ { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[Sentry.Breadcrumb]", + "kind": "Var", + "name": "trace", + "printedName": "trace", "children": [ { - "kind": "TypeNominal", - "name": "Breadcrumb", - "printedName": "Sentry.Breadcrumb", - "usr": "c:objc(cs)SentryBreadcrumb" + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] } ], - "usr": "s:Sa" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)breadcrumbsForSessionReplay", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP014breadcrumbsForbC0SaySo0A10BreadcrumbCGyF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "currentScreenNameForSessionReplay", - "printedName": "currentScreenNameForSessionReplay()", - "children": [ + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO5traceyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO5traceyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 0 + }, { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "Swift.String?", + "kind": "Var", + "name": "debug", + "printedName": "debug", "children": [ { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] } ], - "usr": "s:Sq" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)currentScreenNameForSessionReplay", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP020currentScreenNameForbC0SSSgyF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - } - ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate", - "mangledName": "$s6Sentry0A21SessionReplayDelegateP", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 : ObjectiveC.NSObjectProtocol>", - "sugared_genericSig": "", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ] - }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentrySDKLogSupport", - "printedName": "SentrySDKLogSupport", - "children": [ - { - "kind": "Function", - "name": "configure", - "printedName": "configure(_:diagnosticLevel:)", - "children": [ + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO5debugyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO5debugyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 1 + }, { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "kind": "Var", + "name": "info", + "printedName": "info", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO4infoyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO4infoyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 2 }, { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "kind": "Var", + "name": "warn", + "printedName": "warn", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO4warnyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO4warnyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 3 }, { - "kind": "TypeNominal", - "name": "SentryLevel", - "printedName": "Sentry.SentryLevel", - "usr": "c:@M@Sentry@E@SentryLevel" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport(cm)configure:diagnosticLevel:", - "mangledName": "$s6Sentry0A13SDKLogSupportC9configure_15diagnosticLevelySb_AA0aF0OtFZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "Final", - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "funcSelfKind": "NonMutating" - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init()", - "children": [ + "kind": "Var", + "name": "error", + "printedName": "error", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO5erroryA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO5erroryA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 4 + }, { - "kind": "TypeNominal", - "name": "SentrySDKLogSupport", - "printedName": "Sentry.SentrySDKLogSupport", - "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport" - } - ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport(im)init", - "mangledName": "$s6Sentry0A13SDKLogSupportCACycfc", - "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", - "declAttributes": [ - "Dynamic", - "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport", - "mangledName": "$s6Sentry0A13SDKLogSupportC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC", - "RawDocComment" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" - }, - { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, - { - "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryVideoInfo", - "printedName": "SentryVideoInfo", - "children": [ - { - "kind": "Var", - "name": "path", - "printedName": "path", - "children": [ + "kind": "Var", + "name": "fatal", + "printedName": "fatal", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryLog.Level.Type) -> Sentry.SentryLog.Level", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryLog.Level.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A3LogC5LevelO5fatalyA2EmF", + "mangledName": "$s6Sentry0A3LogC5LevelO5fatalyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 5 + }, { - "kind": "TypeNominal", - "name": "URL", - "printedName": "Foundation.URL", - "usr": "s:10Foundation3URLV" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)path", - "mangledName": "$s6Sentry0A9VideoInfoC4path10Foundation3URLVvp", - "moduleName": "Sentry", - "declAttributes": [ - "Final", - "HasStorage", - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "kind": "Constructor", + "name": "init", + "printedName": "init(value:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC5LevelO5valueAESS_tKcfc", + "mangledName": "$s6Sentry0A3LogC5LevelO5valueAESS_tKcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "throwing": true, + "init_kind": "Designated" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "Var", + "name": "value", + "printedName": "value", "children": [ { "kind": "TypeNominal", - "name": "URL", - "printedName": "Foundation.URL", - "usr": "s:10Foundation3URLV" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)path", - "mangledName": "$s6Sentry0A9VideoInfoC4path10Foundation3URLVvg", + "declKind": "Var", + "usr": "s:6Sentry0A3LogC5LevelO5valueSSvp", + "mangledName": "$s6Sentry0A3LogC5LevelO5valueSSvp", "moduleName": "Sentry", - "implicit": true, "declAttributes": [ - "Final", - "ObjC" + "AccessControl", + "RawDocComment" ], - "spi_group_names": [ - "Private" + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC5LevelO5valueSSvg", + "mangledName": "$s6Sentry0A3LogC5LevelO5valueSSvg", + "moduleName": "Sentry", + "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "toSeverityNumber", + "printedName": "toSeverityNumber()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } ], - "accessorKind": "get" - } - ] - }, - { - "kind": "Var", - "name": "start", - "printedName": "start", - "children": [ + "declKind": "Func", + "usr": "s:6Sentry0A3LogC5LevelO16toSeverityNumberSiyF", + "mangledName": "$s6Sentry0A3LogC5LevelO16toSeverityNumberSiyF", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)start", - "mangledName": "$s6Sentry0A9VideoInfoC5start10Foundation4DateVvp", - "moduleName": "Sentry", - "declAttributes": [ - "Final", - "HasStorage", - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.SentryLog.Level?", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC5LevelO8rawValueAESgSi_tcfc", + "mangledName": "$s6Sentry0A3LogC5LevelO8rawValueAESgSi_tcfc", + "moduleName": "Sentry", + "implicit": true, + "init_kind": "Designated" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", "children": [ { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)start", - "mangledName": "$s6Sentry0A9VideoInfoC5start10Foundation4DateVvg", + "declKind": "Var", + "usr": "s:6Sentry0A3LogC5LevelO8rawValueSivp", + "mangledName": "$s6Sentry0A3LogC5LevelO8rawValueSivp", "moduleName": "Sentry", "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC5LevelO8rawValueSivg", + "mangledName": "$s6Sentry0A3LogC5LevelO8rawValueSivg", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Level", + "printedName": "Sentry.SentryLog.Level", + "usr": "s:6Sentry0A3LogC5LevelO" + }, + { + "kind": "TypeNominal", + "name": "Decoder", + "printedName": "Swift.Decoder", + "usr": "s:s7DecoderP" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC5LevelO4fromAEs7Decoder_p_tKcfc", + "mangledName": "$s6Sentry0A3LogC5LevelO4fromAEs7Decoder_p_tKcfc", + "moduleName": "Sentry", "declAttributes": [ - "Final", - "ObjC" + "AccessControl", + "SPIAccessControl" ], + "isFromExtension": true, "spi_group_names": [ "Private" ], - "accessorKind": "get" - } - ] - }, - { - "kind": "Var", - "name": "end", - "printedName": "end", - "children": [ - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)end", - "mangledName": "$s6Sentry0A9VideoInfoC3end10Foundation4DateVvp", - "moduleName": "Sentry", - "declAttributes": [ - "Final", - "HasStorage", - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "throwing": true, + "init_kind": "Designated" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "Function", + "name": "encode", + "printedName": "encode(to:)", "children": [ { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Encoder", + "printedName": "Swift.Encoder", + "usr": "s:s7EncoderP" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)end", - "mangledName": "$s6Sentry0A9VideoInfoC3end10Foundation4DateVvg", + "declKind": "Func", + "usr": "s:6Sentry0A3LogC5LevelO6encode2toys7Encoder_p_tKF", + "mangledName": "$s6Sentry0A3LogC5LevelO6encode2toys7Encoder_p_tKF", "moduleName": "Sentry", - "implicit": true, "declAttributes": [ - "Final", - "ObjC" + "AccessControl", + "SPIAccessControl" ], + "isFromExtension": true, "spi_group_names": [ "Private" ], - "accessorKind": "get" - } - ] - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init()", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryVideoInfo", - "printedName": "Sentry.SentryVideoInfo", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + "throwing": true, + "funcSelfKind": "NonMutating" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)init", - "mangledName": "$s6Sentry0A9VideoInfoCACycfc", + "declKind": "Enum", + "usr": "s:6Sentry0A3LogC5LevelO", + "mangledName": "$s6Sentry0A3LogC5LevelO", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", + "objc_name": "SentryStructuredLogLevel", "declAttributes": [ - "Dynamic", + "AccessControl", "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" + "RawDocComment" ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo", - "mangledName": "$s6Sentry0A9VideoInfoC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" + "isFromExtension": true, + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + }, + { + "kind": "Conformance", + "name": "Decodable", + "printedName": "Decodable", + "usr": "s:Se", + "mangledName": "$sSe" + }, + { + "kind": "Conformance", + "name": "Encodable", + "printedName": "Encodable", + "usr": "s:SE", + "mangledName": "$sSE" + } + ] + }, + { + "kind": "TypeDecl", + "name": "Attribute", + "printedName": "Attribute", + "children": [ + { + "kind": "Var", + "name": "type", + "printedName": "type", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A3LogC9AttributeC4typeSSvp", + "mangledName": "$s6Sentry0A3LogC9AttributeC4typeSSvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC9AttributeC4typeSSvg", + "mangledName": "$s6Sentry0A3LogC9AttributeC4typeSSvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "value", + "printedName": "value", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A3LogC9AttributeC5valueypvp", + "mangledName": "$s6Sentry0A3LogC9AttributeC5valueypvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A3LogC9AttributeC5valueypvg", + "mangledName": "$s6Sentry0A3LogC9AttributeC5valueypvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(string:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC6stringAESS_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC6stringAESS_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(boolean:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC7booleanAESb_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC7booleanAESb_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(integer:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC7integerAESi_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC7integerAESi_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(double:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC6doubleAESd_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC6doubleAESd_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(float:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC5floatAESf_tcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC5floatAESf_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeCAEycfc", + "mangledName": "$s6Sentry0A3LogC9AttributeCAEycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(from:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Attribute", + "printedName": "Sentry.SentryLog.Attribute", + "usr": "s:6Sentry0A3LogC9AttributeC" + }, + { + "kind": "TypeNominal", + "name": "Decoder", + "printedName": "Swift.Decoder", + "usr": "s:s7DecoderP" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A3LogC9AttributeC4fromAEs7Decoder_p_tKcfc", + "mangledName": "$s6Sentry0A3LogC9AttributeC4fromAEs7Decoder_p_tKcfc", + "moduleName": "Sentry", + "declAttributes": [ + "Convenience", + "AccessControl", + "SPIAccessControl" + ], + "isFromExtension": true, + "spi_group_names": [ + "Private" + ], + "throwing": true, + "init_kind": "Convenience" + }, + { + "kind": "Function", + "name": "encode", + "printedName": "encode(to:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Encoder", + "printedName": "Swift.Encoder", + "usr": "s:s7EncoderP" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A3LogC9AttributeC6encode2toys7Encoder_p_tKF", + "mangledName": "$s6Sentry0A3LogC9AttributeC6encode2toys7Encoder_p_tKF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "SPIAccessControl" + ], + "isFromExtension": true, + "spi_group_names": [ + "Private" + ], + "throwing": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "s:6Sentry0A3LogC9AttributeC", + "mangledName": "$s6Sentry0A3LogC9AttributeC", + "moduleName": "Sentry", + "objc_name": "SentryStructuredLogAttribute", + "declAttributes": [ + "Final", + "AccessControl", + "ObjCMembers", + "ObjC", + "RawDocComment" + ], + "isFromExtension": true, + "superclassUsr": "c:objc(cs)NSObject", + "hasMissingDesignatedInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Decodable", + "printedName": "Decodable", + "usr": "s:Se", + "mangledName": "$sSe" + }, + { + "kind": "Conformance", + "name": "Encodable", + "printedName": "Encodable", + "usr": "s:SE", + "mangledName": "$sSE" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryLog", + "mangledName": "$s6Sentry0A3LogC", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "ObjCMembers", + "ObjC", + "RawDocComment" ], "superclassUsr": "c:objc(cs)NSObject", "hasMissingDesignatedInitializers": true, @@ -3822,6 +5269,20 @@ "ObjectiveC.NSObject" ], "conformances": [ + { + "kind": "Conformance", + "name": "Decodable", + "printedName": "Decodable", + "usr": "s:Se", + "mangledName": "$sSe" + }, + { + "kind": "Conformance", + "name": "Encodable", + "printedName": "Encodable", + "usr": "s:SE", + "mangledName": "$sSE" + }, { "kind": "Conformance", "name": "Equatable", @@ -3883,13 +5344,6 @@ "ImplementationOnly" ] }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "Import", "name": "_SentryPrivate", @@ -3902,154 +5356,278 @@ }, { "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", + "name": "Darwin", + "printedName": "Darwin", "declKind": "Import", "moduleName": "Sentry" }, { "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", + "name": "Foundation", + "printedName": "Foundation", "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] + "moduleName": "Sentry" }, { "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", + "name": "MachO", + "printedName": "MachO", "declKind": "Import", "moduleName": "Sentry" }, { "kind": "TypeDecl", - "name": "SentryScreenshot", - "printedName": "SentryScreenshot", + "name": "LoadValidator", + "printedName": "LoadValidator", "children": [ { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "checkForDuplicatedSDK", + "printedName": "checkForDuplicatedSDK(imageName:imageAddress:imageSize:dispatchQueueWrapper:)", "children": [ { "kind": "TypeNominal", - "name": "SentryScreenshot", - "printedName": "Sentry.SentryScreenshot", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + }, + { + "kind": "TypeNominal", + "name": "NSNumber", + "printedName": "Foundation.NSNumber", + "usr": "c:objc(cs)NSNumber" + }, + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)init", - "mangledName": "$s6Sentry0A10ScreenshotCACycfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)LoadValidator(cm)checkForDuplicatedSDKWithImageName:imageAddress:imageSize:dispatchQueueWrapper:", + "mangledName": "$s6Sentry13LoadValidatorC21checkForDuplicatedSDK9imageName0H7Address0H4Size20dispatchQueueWrapperySS_So8NSNumberCAjA0a8DispatchmN0CtFZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "init", + "static": true, + "objc_name": "checkForDuplicatedSDKWithImageName:imageAddress:imageSize:dispatchQueueWrapper:", "declAttributes": [ - "Dynamic", + "Final", + "AccessControl", + "SPIAccessControl", "ObjC", - "Override", - "AccessControl" + "RawDocComment" ], "spi_group_names": [ "Private" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { - "kind": "Function", - "name": "appScreenshotsFromMainThread", - "printedName": "appScreenshotsFromMainThread()", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[UIKit.UIImage]", - "children": [ - { - "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" - } - ], - "usr": "s:Sa" + "name": "LoadValidator", + "printedName": "Sentry.LoadValidator", + "usr": "c:@M@Sentry@objc(cs)LoadValidator" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotsFromMainThread", - "mangledName": "$s6Sentry0A10ScreenshotC28appScreenshotsFromMainThreadSaySo7UIImageCGyF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)LoadValidator(im)init", + "mangledName": "$s6Sentry13LoadValidatorCACycfc", "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "AccessControl", - "RawDocComment", - "ObjC" + "Dynamic", + "ObjC", + "Override" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "appScreenshotDatasFromMainThread", - "printedName": "appScreenshotDatasFromMainThread()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[Foundation.Data]", - "children": [ - { - "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)LoadValidator", + "mangledName": "$s6Sentry13LoadValidatorC", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryReplayRecording", + "printedName": "SentryReplayRecording", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(segmentId:video:extraEvents:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayRecording", + "printedName": "Sentry.SentryReplayRecording", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "SentryVideoInfo", + "printedName": "Sentry.SentryVideoInfo", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Sentry.SentryRRWebEventProtocol]", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryRRWebEventProtocol", + "printedName": "Sentry.SentryRRWebEventProtocol", + "usr": "c:@M@Sentry@objc(pl)SentryRRWebEvent" } ], "usr": "s:Sa" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotDatasFromMainThread", - "mangledName": "$s6Sentry0A10ScreenshotC03appB19DatasFromMainThreadSay10Foundation4DataVGyF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)initWithSegmentId:video:extraEvents:", + "mangledName": "$s6Sentry0A15ReplayRecordingC9segmentId5video11extraEventsACSi_AA0A9VideoInfoCSayAA0A18RRWebEventProtocol_pGtcfc", "moduleName": "Sentry", "declAttributes": [ + "Convenience", "AccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "init_kind": "Convenience" }, { "kind": "Function", - "name": "saveScreenShots", - "printedName": "saveScreenShots(_:)", + "name": "headerForReplayRecording", + "printedName": "headerForReplayRecording()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)saveScreenShots:", - "mangledName": "$s6Sentry0A10ScreenshotC15saveScreenShotsyySSF", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)headerForReplayRecording", + "mangledName": "$s6Sentry0A15ReplayRecordingC09headerForbC0SDySSypGyF", "moduleName": "Sentry", "declAttributes": [ "AccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ @@ -4059,27 +5637,40 @@ }, { "kind": "Function", - "name": "appScreenshots", - "printedName": "appScreenshots()", + "name": "serialize", + "printedName": "serialize()", "children": [ { "kind": "TypeNominal", "name": "Array", - "printedName": "[UIKit.UIImage]", + "printedName": "[[Swift.String : Any]]", "children": [ { "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" } ], "usr": "s:Sa" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshots", - "mangledName": "$s6Sentry0A10ScreenshotC14appScreenshotsSaySo7UIImageCGyF", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)serialize", + "mangledName": "$s6Sentry0A15ReplayRecordingC9serializeSaySDySSypGGyF", "moduleName": "Sentry", "declAttributes": [ "AccessControl", @@ -4091,42 +5682,38 @@ "funcSelfKind": "NonMutating" }, { - "kind": "Function", - "name": "appScreenshotsData", - "printedName": "appScreenshotsData()", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[Foundation.Data]", - "children": [ - { - "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" - } - ], - "usr": "s:Sa" + "name": "SentryReplayRecording", + "printedName": "Sentry.SentryReplayRecording", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotsData", - "mangledName": "$s6Sentry0A10ScreenshotC18appScreenshotsDataSay10Foundation0E0VGyF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording(im)init", + "mangledName": "$s6Sentry0A15ReplayRecordingCACycfc", "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "AccessControl", - "ObjC" + "Dynamic", + "ObjC", + "Override" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryScreenshot", - "mangledName": "$s6Sentry0A10ScreenshotC", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording", + "mangledName": "$s6Sentry0A15ReplayRecordingC", "moduleName": "Sentry", "declAttributes": [ "AccessControl", @@ -4138,7 +5725,7 @@ "Private" ], "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, + "hasMissingDesignatedInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], @@ -4220,20 +5807,48 @@ }, { "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", + "name": "Foundation", + "printedName": "Foundation", "declKind": "Import", "moduleName": "Sentry" }, { "kind": "TypeDecl", - "name": "SentryReplayVideoMaker", - "printedName": "SentryReplayVideoMaker", + "name": "SentrySessionReplayDelegate", + "printedName": "SentrySessionReplayDelegate", "children": [ { "kind": "Function", - "name": "addFrameAsync", - "printedName": "addFrameAsync(timestamp:maskedViewImage:forScreen:)", + "name": "sessionReplayShouldCaptureReplayForError", + "printedName": "sessionReplayShouldCaptureReplayForError()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayShouldCaptureReplayForError", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionc13ShouldCaptureC8ForErrorSbyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "sessionReplayNewSegment", + "printedName": "sessionReplayNewSegment(replayEvent:replayRecording:videoUrl:)", "children": [ { "kind": "TypeNominal", @@ -4242,37 +5857,29 @@ }, { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "SentryReplayEvent", + "printedName": "Sentry.SentryReplayEvent", + "usr": "c:@M@Sentry@objc(cs)SentryReplayEvent" }, { "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" + "name": "SentryReplayRecording", + "printedName": "Sentry.SentryReplayRecording", + "usr": "c:@M@Sentry@objc(cs)SentryReplayRecording" }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "Swift.String?", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "usr": "s:Sq" + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)addFrameAsyncWithTimestamp:maskedViewImage:forScreen:", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP13addFrameAsync9timestamp15maskedViewImage9forScreeny10Foundation4DateV_So7UIImageCSSSgtF", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayNewSegmentWithReplayEvent:replayRecording:videoUrl:", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionC10NewSegment11replayEvent0H9Recording8videoUrlyAA0acI0C_AA0acJ0C10Foundation3URLVtF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ "ObjC" @@ -4285,8 +5892,8 @@ }, { "kind": "Function", - "name": "releaseFramesUntil", - "printedName": "releaseFramesUntil(_:)", + "name": "sessionReplayStarted", + "printedName": "sessionReplayStarted(replayId:)", "children": [ { "kind": "TypeNominal", @@ -4295,17 +5902,17 @@ }, { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)releaseFramesUntil:", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP18releaseFramesUntilyy10Foundation4DateVF", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)sessionReplayStartedWithReplayId:", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP07sessionC7Started8replayIdyAA0aH0C_tF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ "ObjC" @@ -4318,59 +5925,30 @@ }, { "kind": "Function", - "name": "createVideoInBackgroundWith", - "printedName": "createVideoInBackgroundWith(beginning:end:completion:)", + "name": "breadcrumbsForSessionReplay", + "printedName": "breadcrumbsForSessionReplay()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - }, - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - }, - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "([Sentry.SentryVideoInfo]) -> ()", + "name": "Array", + "printedName": "[Sentry.Breadcrumb]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[Sentry.SentryVideoInfo]", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryVideoInfo", - "printedName": "Sentry.SentryVideoInfo", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" - } - ], - "usr": "s:Sa" + "name": "Breadcrumb", + "printedName": "Sentry.Breadcrumb", + "usr": "c:objc(cs)SentryBreadcrumb" } - ] + ], + "usr": "s:Sa" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)createVideoInBackgroundWithBeginning:end:completion:", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP06createC16InBackgroundWith9beginning3end10completiony10Foundation4DateV_AJySayAA0aC4InfoCGctF", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)breadcrumbsForSessionReplay", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP014breadcrumbsForbC0SaySo0A10BreadcrumbCGyF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ "ObjC" @@ -4383,42 +5961,30 @@ }, { "kind": "Function", - "name": "createVideoWith", - "printedName": "createVideoWith(beginning:end:)", + "name": "currentScreenNameForSessionReplay", + "printedName": "currentScreenNameForSessionReplay()", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[Sentry.SentryVideoInfo]", + "name": "Optional", + "printedName": "Swift.String?", "children": [ { "kind": "TypeNominal", - "name": "SentryVideoInfo", - "printedName": "Sentry.SentryVideoInfo", - "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "usr": "s:Sa" - }, - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - }, - { - "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "usr": "s:Sq" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)createVideoWithBeginning:end:", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP06createC4With9beginning3endSayAA0aC4InfoCG10Foundation4DateV_ALtF", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate(im)currentScreenNameForSessionReplay", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP020currentScreenNameForbC0SSSgyF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentrySessionReplayDelegate>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ "ObjC" @@ -4431,8 +5997,8 @@ } ], "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker", - "mangledName": "$s6Sentry0A16ReplayVideoMakerP", + "usr": "c:@M@Sentry@objc(pl)SentrySessionReplayDelegate", + "mangledName": "$s6Sentry0A21SessionReplayDelegateP", "moduleName": "Sentry", "genericSig": "<τ_0_0 : ObjectiveC.NSObjectProtocol>", "sugared_genericSig": "", @@ -4445,15 +6011,32 @@ "Private" ] }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "TypeDecl", - "name": "SentryFileManagerProtocol", - "printedName": "SentryFileManagerProtocol", + "name": "SentrySDKLogSupport", + "printedName": "SentrySDKLogSupport", "children": [ { "kind": "Function", - "name": "moveState", - "printedName": "moveState(_:toPreviousState:)", + "name": "configure", + "printedName": "configure(_:diagnosticLevel:)", "children": [ { "kind": "TypeNominal", @@ -4462,185 +6045,130 @@ }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "SentryLevel", + "printedName": "Sentry.SentryLevel", + "usr": "c:@M@Sentry@E@SentryLevel" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)moveState:toPreviousState:", - "mangledName": "$s6Sentry0A19FileManagerProtocolP9moveState_010toPreviousF0ySS_SStF", + "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport(cm)configure:diagnosticLevel:", + "mangledName": "$s6Sentry0A13SDKLogSupportC9configure_15diagnosticLevelySb_AA0aF0OtFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, + "static": true, "declAttributes": [ + "Final", + "AccessControl", "ObjC" ], "spi_group_names": [ "Private" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { - "kind": "Function", - "name": "readData", - "printedName": "readData(fromPath:)", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" - }, - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "SentrySDKLogSupport", + "printedName": "Sentry.SentrySDKLogSupport", + "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)readDataFromPath:error:", - "mangledName": "$s6Sentry0A19FileManagerProtocolP8readData8fromPath10Foundation0F0VSS_tKF", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport(im)init", + "mangledName": "$s6Sentry0A13SDKLogSupportCACycfc", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "ObjC" + "Dynamic", + "ObjC", + "Override" ], "spi_group_names": [ "Private" ], - "throwing": true, - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "write", - "printedName": "write(_:toPath:)", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - }, - { - "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" - }, - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)writeData:toPath:", - "mangledName": "$s6Sentry0A19FileManagerProtocolP5write_6toPathSb10Foundation4DataV_SStF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, - "objc_name": "writeData:toPath:", - "declAttributes": [ - "DiscardableResult", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "removeFile", - "printedName": "removeFile(atPath:)", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)removeFileAtPath:", - "mangledName": "$s6Sentry0A19FileManagerProtocolP06removeB06atPathySS_tF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "getSentryPathAsURL", - "printedName": "getSentryPathAsURL()", - "children": [ - { - "kind": "TypeNominal", - "name": "URL", - "printedName": "Foundation.URL", - "usr": "s:10Foundation3URLV" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)getSentryPathAsURL", - "mangledName": "$s6Sentry0A19FileManagerProtocolP03getA9PathAsURL10Foundation0H0VyF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" + "init_kind": "Designated" } ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol", - "mangledName": "$s6Sentry0A19FileManagerProtocolP", + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentrySDKLogSupport", + "mangledName": "$s6Sentry0A13SDKLogSupportC", "moduleName": "Sentry", - "genericSig": "<τ_0_0 : AnyObject>", - "sugared_genericSig": "", "declAttributes": [ "AccessControl", + "SPIAccessControl", "ObjC", - "SPIAccessControl" + "RawDocComment" ], "spi_group_names": [ "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } ] }, { @@ -4650,6 +6178,13 @@ "declKind": "Import", "moduleName": "Sentry" }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "Import", "name": "_SentryPrivate", @@ -4660,6 +6195,13 @@ "ImplementationOnly" ] }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "Import", "name": "_SentryPrivate", @@ -4677,1062 +6219,955 @@ "declKind": "Import", "moduleName": "Sentry" }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment" - ] - }, { "kind": "TypeDecl", - "name": "SentryReplayOptions", - "printedName": "SentryReplayOptions", + "name": "SentryLogger", + "printedName": "SentryLogger", "children": [ { - "kind": "TypeDecl", - "name": "DefaultValues", - "printedName": "DefaultValues", + "kind": "Constructor", + "name": "init", + "printedName": "init(hub:dateProvider:batcher:)", "children": [ { - "kind": "Var", - "name": "sessionSampleRate", - "printedName": "sessionSampleRate", + "kind": "TypeNominal", + "name": "SentryLogger", + "printedName": "Sentry.SentryLogger", + "usr": "c:@M@Sentry@objc(cs)SentryLogger" + }, + { + "kind": "TypeNominal", + "name": "SentryHub", + "printedName": "Sentry.SentryHub", + "usr": "c:objc(cs)SentryHub" + }, + { + "kind": "TypeNominal", + "name": "SentryCurrentDateProvider", + "printedName": "Sentry.SentryCurrentDateProvider", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.SentryLogBatcher?", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "SentryLogBatcher", + "printedName": "Sentry.SentryLogBatcher", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher" } ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" - } - ] + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A6LoggerC3hub12dateProvider7batcherACSo0A3HubC_AA0a11CurrentDateE0_pAA0A10LogBatcherCSgtcfc", + "mangledName": "$s6Sentry0A6LoggerC3hub12dateProvider7batcherACSo0A3HubC_AA0a11CurrentDateE0_pAA0A10LogBatcherCSgtcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "trace", + "printedName": "trace(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "onErrorSampleRate", - "printedName": "onErrorSampleRate", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "hasDefaultArg": true, + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC5trace_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC5trace_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "trace", + "printedName": "trace(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "maskAllText", - "printedName": "maskAllText", + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)trace:", + "mangledName": "$s6Sentry0A6LoggerC5traceyySSF", + "moduleName": "Sentry", + "objc_name": "trace:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "trace", + "printedName": "trace(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)trace:attributes:", + "mangledName": "$s6Sentry0A6LoggerC5trace_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "trace:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "debug", + "printedName": "debug(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "maskAllImages", - "printedName": "maskAllImages", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" - } - ] + "hasDefaultArg": true, + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC5debug_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC5debug_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "debug", + "printedName": "debug(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "enableViewRendererV2", - "printedName": "enableViewRendererV2", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" - } - ] + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)debug:", + "mangledName": "$s6Sentry0A6LoggerC5debugyySSF", + "moduleName": "Sentry", + "objc_name": "debug:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "debug", + "printedName": "debug(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "enableFastViewRendering", - "printedName": "enableFastViewRendering", + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)debug:attributes:", + "mangledName": "$s6Sentry0A6LoggerC5debug_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "debug:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "info", + "printedName": "info(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "quality", - "printedName": "quality", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "hasDefaultArg": true, + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC4info_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC4info_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "info", + "printedName": "info(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "maskedViewClasses", - "printedName": "maskedViewClasses", + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)info:", + "mangledName": "$s6Sentry0A6LoggerC4infoyySSF", + "moduleName": "Sentry", + "objc_name": "info:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "info", + "printedName": "info(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl", - "RawDocComment" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)info:attributes:", + "mangledName": "$s6Sentry0A6LoggerC4info_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "info:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "warn", + "printedName": "warn(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "unmaskedViewClasses", - "printedName": "unmaskedViewClasses", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvpZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvpZ", - "moduleName": "Sentry", - "static": true, - "declAttributes": [ - "HasInitialValue", - "Final", - "HasStorage", - "AccessControl" - ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvgZ", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } - ] + ], + "hasDefaultArg": true, + "usr": "s:SD" } ], - "declKind": "Class", - "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC", - "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC", + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC4warn_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC4warn_10attributesyAA0A10LogMessageV_SDySSypGtF", "moduleName": "Sentry", "declAttributes": [ + "Final", "AccessControl", "RawDocComment" ], - "hasMissingDesignatedInitializers": true + "funcSelfKind": "NonMutating" }, { - "kind": "TypeDecl", - "name": "SentryReplayQuality", - "printedName": "SentryReplayQuality", + "kind": "Function", + "name": "warn", + "printedName": "warn(_:)", "children": [ { - "kind": "Var", - "name": "low", - "printedName": "low", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO3lowyA2EmF", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO3lowyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 0 + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "medium", - "printedName": "medium", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO6mediumyA2EmF", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO6mediumyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 1 + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)warn:", + "mangledName": "$s6Sentry0A6LoggerC4warnyySSF", + "moduleName": "Sentry", + "objc_name": "warn:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "warn", + "printedName": "warn(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Var", - "name": "high", - "printedName": "high", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO4highyA2EmF", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO4highyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 2 + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" }, { - "kind": "Var", - "name": "description", - "printedName": "description", + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", "name": "String", "printedName": "Swift.String", "usr": "s:SS" - } - ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvp", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvp", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl" - ], - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvg", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvg", - "moduleName": "Sentry", - "accessorKind": "get" - } - ] - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init(rawValue:)", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality?", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ], - "usr": "s:Sq" }, { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ], - "declKind": "Constructor", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueAESgSi_tcfc", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueAESgSi_tcfc", - "moduleName": "Sentry", - "implicit": true, - "init_kind": "Designated" - }, - { - "kind": "Var", - "name": "rawValue", - "printedName": "rawValue", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Var", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivp", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivp", - "moduleName": "Sentry", - "implicit": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivg", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivg", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "get" - } - ] + "usr": "s:SD" } ], - "declKind": "Enum", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO", - "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)warn:attributes:", + "mangledName": "$s6Sentry0A6LoggerC4warn_10attributesySS_SDySSypGtF", "moduleName": "Sentry", + "objc_name": "warn:attributes:", "declAttributes": [ + "Final", "AccessControl", "ObjC", "RawDocComment" ], - "enumRawTypeName": "Int", - "conformances": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "error", + "printedName": "error(_:attributes:)", + "children": [ { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" }, { - "kind": "Conformance", - "name": "RawRepresentable", - "printedName": "RawRepresentable", + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { - "kind": "TypeWitness", - "name": "RawValue", - "printedName": "RawValue", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ] + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } ], - "usr": "s:SY", - "mangledName": "$sSY" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "hasDefaultArg": true, + "usr": "s:SD" } - ] + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC5error_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC5error_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "sessionSampleRate", - "printedName": "sessionSampleRate", + "kind": "Function", + "name": "error", + "printedName": "error(_:)", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sessionSampleRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)error:", + "mangledName": "$s6Sentry0A6LoggerC5erroryySSF", "moduleName": "Sentry", + "objc_name": "error:", "declAttributes": [ - "HasStorage", + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "error", + "printedName": "error(_:attributes:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sessionSampleRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" }, { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setSessionSampleRate:", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)error:attributes:", + "mangledName": "$s6Sentry0A6LoggerC5error_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "error:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "fatal", + "printedName": "fatal(_:attributes:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "SentryLogMessage", + "printedName": "Sentry.SentryLogMessage", + "usr": "s:6Sentry0A10LogMessageV" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC17sessionSampleRateSfvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "hasDefaultArg": true, + "usr": "s:SD" } - ] + ], + "declKind": "Func", + "usr": "s:6Sentry0A6LoggerC5fatal_10attributesyAA0A10LogMessageV_SDySSypGtF", + "mangledName": "$s6Sentry0A6LoggerC5fatal_10attributesyAA0A10LogMessageV_SDySSypGtF", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "onErrorSampleRate", - "printedName": "onErrorSampleRate", + "kind": "Function", + "name": "fatal", + "printedName": "fatal(_:)", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)onErrorSampleRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)fatal:", + "mangledName": "$s6Sentry0A6LoggerC5fatalyySSF", "moduleName": "Sentry", + "objc_name": "fatal:", "declAttributes": [ - "HasStorage", + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "fatal", + "printedName": "fatal(_:attributes:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)onErrorSampleRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" }, { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "ProtocolComposition", + "printedName": "Any" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setOnErrorSampleRate:", - "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)fatal:attributes:", + "mangledName": "$s6Sentry0A6LoggerC5fatal_10attributesySS_SDySSypGtF", + "moduleName": "Sentry", + "objc_name": "fatal:attributes:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "SentryLogger", + "printedName": "Sentry.SentryLogger", + "usr": "c:@M@Sentry@objc(cs)SentryLogger" } - ] + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLogger(im)init", + "mangledName": "$s6Sentry0A6LoggerCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryLogger", + "mangledName": "$s6Sentry0A6LoggerC", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "superclassUsr": "c:objc(cs)NSObject", + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryVideoInfo", + "printedName": "SentryVideoInfo", + "children": [ { "kind": "Var", - "name": "maskAllText", - "printedName": "maskAllText", + "name": "path", + "printedName": "path", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskAllText", - "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvp", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)path", + "mangledName": "$s6Sentry0A9VideoInfoC4path10Foundation3URLVvp", "moduleName": "Sentry", - "objc_name": "maskAllText", "declAttributes": [ - "ObjC", + "Final", "HasStorage", "AccessControl", - "RawDocComment" + "ObjC" + ], + "spi_group_names": [ + "Private" ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -5742,92 +7177,53 @@ "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskAllText", - "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvg", - "moduleName": "Sentry", - "implicit": true, - "objc_name": "maskAllText", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskAllText:", - "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvs", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)path", + "mangledName": "$s6Sentry0A9VideoInfoC4path10Foundation3URLVvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } + "spi_group_names": [ + "Private" ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC11maskAllTextSbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "maskAllImages", - "printedName": "maskAllImages", + "name": "start", + "printedName": "start", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskAllImages", - "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvp", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)start", + "mangledName": "$s6Sentry0A9VideoInfoC5start10Foundation4DateVvp", "moduleName": "Sentry", - "objc_name": "maskAllImages", "declAttributes": [ - "ObjC", + "Final", "HasStorage", "AccessControl", - "RawDocComment" + "ObjC" + ], + "spi_group_names": [ + "Private" ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -5837,91 +7233,53 @@ "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskAllImages", - "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvg", - "moduleName": "Sentry", - "implicit": true, - "objc_name": "maskAllImages", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskAllImages:", - "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvs", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)start", + "mangledName": "$s6Sentry0A9VideoInfoC5start10Foundation4DateVvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } + "spi_group_names": [ + "Private" ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC13maskAllImagesSbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "quality", - "printedName": "quality", + "name": "end", + "printedName": "end", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)quality", - "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvp", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(py)end", + "mangledName": "$s6Sentry0A9VideoInfoC3end10Foundation4DateVvp", "moduleName": "Sentry", "declAttributes": [ + "Final", "HasStorage", "AccessControl", - "RawDocComment", "ObjC" ], + "spi_group_names": [ + "Private" + ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -5931,580 +7289,596 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)quality", - "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryReplayQuality", - "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", - "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setQuality:", - "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvs", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)end", + "mangledName": "$s6Sentry0A9VideoInfoC3end10Foundation4DateVvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } + "spi_group_names": [ + "Private" ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { - "kind": "Var", - "name": "maskedViewClasses", - "printedName": "maskedViewClasses", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" + "name": "SentryVideoInfo", + "printedName": "Sentry.SentryVideoInfo", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskedViewClasses", - "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvp", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo(im)init", + "mangledName": "$s6Sentry0A9VideoInfoCACycfc", "moduleName": "Sentry", - "objc_name": "maskedViewClasses", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ + "Dynamic", "ObjC", - "HasStorage", - "AccessControl", - "RawDocComment" + "Override" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskedViewClasses", - "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvg", - "moduleName": "Sentry", - "implicit": true, - "objc_name": "maskedViewClasses", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskedViewClasses:", - "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo", + "mangledName": "$s6Sentry0A9VideoInfoC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "hasMissingDesignatedInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryScreenshot", + "printedName": "SentryScreenshot", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "SentryScreenshot", + "printedName": "Sentry.SentryScreenshot", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot" } - ] + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)init", + "mangledName": "$s6Sentry0A10ScreenshotCACycfc", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" }, { - "kind": "Var", - "name": "unmaskedViewClasses", - "printedName": "unmaskedViewClasses", + "kind": "Function", + "name": "appScreenshotsFromMainThread", + "printedName": "appScreenshotsFromMainThread()", "children": [ { "kind": "TypeNominal", "name": "Array", - "printedName": "[AnyObject.Type]", + "printedName": "[UIKit.UIImage]", "children": [ { "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" } ], "usr": "s:Sa" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)unmaskedViewClasses", - "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotsFromMainThread", + "mangledName": "$s6Sentry0A10ScreenshotC28appScreenshotsFromMainThreadSaySo7UIImageCGyF", "moduleName": "Sentry", - "objc_name": "unmaskedViewClasses", "declAttributes": [ - "ObjC", - "HasStorage", "AccessControl", - "RawDocComment" + "RawDocComment", + "ObjC" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)unmaskedViewClasses", - "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvg", - "moduleName": "Sentry", - "implicit": true, - "objc_name": "unmaskedViewClasses", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Array", - "printedName": "[AnyObject.Type]", - "children": [ - { - "kind": "TypeNominal", - "name": "ExistentialMetatype", - "printedName": "AnyObject.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "AnyObject" - } - ] - } - ], - "usr": "s:Sa" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setUnmaskedViewClasses:", - "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "appScreenshotDatasFromMainThread", + "printedName": "appScreenshotDatasFromMainThread()", + "children": [ { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Foundation.Data]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "usr": "s:Sa" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotDatasFromMainThread", + "mangledName": "$s6Sentry0A10ScreenshotC03appB19DatasFromMainThreadSay10Foundation4DataVGyF", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "enableExperimentalViewRenderer", - "printedName": "enableExperimentalViewRenderer", + "kind": "Function", + "name": "saveScreenShots", + "printedName": "saveScreenShots(_:)", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableExperimentalViewRenderer", - "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)saveScreenShots:", + "mangledName": "$s6Sentry0A10ScreenshotC15saveScreenShotsyySSF", "moduleName": "Sentry", - "deprecated": true, "declAttributes": [ "AccessControl", - "Available", "RawDocComment", "ObjC" ], - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableExperimentalViewRenderer", - "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvg", - "moduleName": "Sentry", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableExperimentalViewRenderer:", - "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvs", - "moduleName": "Sentry", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "appScreenshots", + "printedName": "appScreenshots()", + "children": [ { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "Array", + "printedName": "[UIKit.UIImage]", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvM", - "moduleName": "Sentry", - "deprecated": true, - "implicit": true, - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "enableViewRendererV2", - "printedName": "enableViewRendererV2", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "usr": "s:Sa" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableViewRendererV2", - "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshots", + "mangledName": "$s6Sentry0A10ScreenshotC14appScreenshotsSaySo7UIImageCGyF", "moduleName": "Sentry", "declAttributes": [ - "HasStorage", "AccessControl", - "RawDocComment", "ObjC" ], - "hasStorage": true, - "accessors": [ + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "appScreenshotsData", + "printedName": "appScreenshotsData()", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Foundation.Data]", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableViewRendererV2", - "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableViewRendererV2:", - "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "usr": "s:Sa" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot(im)appScreenshotsData", + "mangledName": "$s6Sentry0A10ScreenshotC18appScreenshotsDataSay10Foundation0E0VGyF", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryScreenshot", + "mangledName": "$s6Sentry0A10ScreenshotC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryReplayVideoMaker", + "printedName": "SentryReplayVideoMaker", + "children": [ + { + "kind": "Function", + "name": "addFrameAsync", + "printedName": "addFrameAsync(timestamp:maskedViewImage:forScreen:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + }, + { + "kind": "TypeNominal", + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC20enableViewRendererV2SbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2SbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "usr": "s:Sq" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)addFrameAsyncWithTimestamp:maskedViewImage:forScreen:", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP13addFrameAsync9timestamp15maskedViewImage9forScreeny10Foundation4DateV_So7UIImageCSSSgtF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "enableFastViewRendering", - "printedName": "enableFastViewRendering", + "kind": "Function", + "name": "releaseFramesUntil", + "printedName": "releaseFramesUntil(_:)", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableFastViewRendering", - "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)releaseFramesUntil:", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP18releaseFramesUntilyy10Foundation4DateVF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "RawDocComment", "ObjC" ], - "hasStorage": true, - "accessors": [ + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "createVideoInBackgroundWith", + "printedName": "createVideoInBackgroundWith(beginning:end:completion:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableFastViewRendering", - "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + }, + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "([Sentry.SentryVideoInfo]) -> ()", "children": [ { "kind": "TypeNominal", @@ -6513,692 +7887,5032 @@ }, { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableFastViewRendering:", - "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "Array", + "printedName": "[Sentry.SentryVideoInfo]", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryVideoInfo", + "printedName": "Sentry.SentryVideoInfo", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" + } + ], + "usr": "s:Sa" } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "replayBitRate", - "printedName": "replayBitRate", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + ] } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)replayBitRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC13replayBitRateSivp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)createVideoInBackgroundWithBeginning:end:completion:", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP06createC16InBackgroundWith9beginning3end10completiony10Foundation4DateV_AJySayAA0aC4InfoCGctF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "accessors": [ + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "createVideoWith", + "printedName": "createVideoWith(beginning:end:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "Array", + "printedName": "[Sentry.SentryVideoInfo]", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "SentryVideoInfo", + "printedName": "Sentry.SentryVideoInfo", + "usr": "c:@M@Sentry@objc(cs)SentryVideoInfo" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)replayBitRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC13replayBitRateSivg", - "moduleName": "Sentry", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - } - ] - }, - { - "kind": "Var", - "name": "sizeScale", - "printedName": "sizeScale", - "children": [ + "usr": "s:Sa" + }, { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + }, + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sizeScale", - "mangledName": "$s6Sentry0A13ReplayOptionsC9sizeScaleSfvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker(im)createVideoWithBeginning:end:", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP06createC4With9beginning3endSayAA0aC4InfoCG10Foundation4DateV_ALtF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryReplayVideoMaker>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sizeScale", - "mangledName": "$s6Sentry0A13ReplayOptionsC9sizeScaleSfvg", - "moduleName": "Sentry", - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - } - ] - }, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryReplayVideoMaker", + "mangledName": "$s6Sentry0A16ReplayVideoMakerP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : ObjectiveC.NSObjectProtocol>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "TypeDecl", + "name": "SentryFileManagerProtocol", + "printedName": "SentryFileManagerProtocol", + "children": [ { - "kind": "Var", - "name": "frameRate", - "printedName": "frameRate", + "kind": "Function", + "name": "moveState", + "printedName": "moveState(_:toPreviousState:)", "children": [ { "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)frameRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)moveState:toPreviousState:", + "mangledName": "$s6Sentry0A19FileManagerProtocolP9moveState_010toPreviousF0ySS_SStF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "hasStorage": true, - "accessors": [ + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "readData", + "printedName": "readData(fromPath:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)frameRate", - "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setFrameRate:", - "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "TypeNominal", + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC9frameRateSuvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "errorReplayDuration", - "printedName": "errorReplayDuration", - "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)errorReplayDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)readDataFromPath:error:", + "mangledName": "$s6Sentry0A19FileManagerProtocolP8readData8fromPath10Foundation0F0VSS_tKF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "hasStorage": true, - "accessors": [ + "throwing": true, + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "write", + "printedName": "write(_:toPath:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)errorReplayDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setErrorReplayDuration:", - "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "TypeNominal", + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC05errorB8DurationSdvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)writeData:toPath:", + "mangledName": "$s6Sentry0A19FileManagerProtocolP5write_6toPathSb10Foundation4DataV_SStF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, + "objc_name": "writeData:toPath:", + "declAttributes": [ + "DiscardableResult", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "sessionSegmentDuration", - "printedName": "sessionSegmentDuration", + "kind": "Function", + "name": "removeFile", + "printedName": "removeFile(atPath:)", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sessionSegmentDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)removeFileAtPath:", + "mangledName": "$s6Sentry0A19FileManagerProtocolP06removeB06atPathySS_tF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sessionSegmentDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setSessionSegmentDuration:", - "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" - } - ] + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "maximumDuration", - "printedName": "maximumDuration", + "kind": "Function", + "name": "getSentryPathAsURL", + "printedName": "getSentryPathAsURL()", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "URL", + "printedName": "Foundation.URL", + "usr": "s:10Foundation3URLV" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maximumDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol(im)getSentryPathAsURL", + "mangledName": "$s6Sentry0A19FileManagerProtocolP03getA9PathAsURL10Foundation0H0VyF", "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryFileManagerProtocol>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "HasStorage", - "AccessControl", - "SPIAccessControl", - "RawDocComment", "ObjC" ], "spi_group_names": [ "Private" ], - "hasStorage": true, - "accessors": [ + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryFileManagerProtocol", + "mangledName": "$s6Sentry0A19FileManagerProtocolP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "ObjC", + "SPIAccessControl" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "SentryReplayOptions", + "printedName": "SentryReplayOptions", + "children": [ + { + "kind": "TypeDecl", + "name": "DefaultValues", + "printedName": "DefaultValues", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "Var", + "name": "sessionSampleRate", + "printedName": "sessionSampleRate", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maximumDuration", - "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvg", + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvpZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ - "ObjC" + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" ], - "accessorKind": "get" + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17sessionSampleRateSfvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "Var", + "name": "onErrorSampleRate", + "printedName": "onErrorSampleRate", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaximumDuration:", - "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvs", + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvpZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ - "ObjC" + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" ], - "accessorKind": "set" + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17onErrorSampleRateSfvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { + "kind": "Var", + "name": "maskAllText", + "printedName": "maskAllText", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC11maskAllTextSbvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "maskAllImages", + "printedName": "maskAllImages", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC13maskAllImagesSbvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "enableViewRendererV2", + "printedName": "enableViewRendererV2", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC20enableViewRendererV2SbvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "enableFastViewRendering", + "printedName": "enableFastViewRendering", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC23enableFastViewRenderingSbvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "quality", + "printedName": "quality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC7qualityAC0aB7QualityOvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "maskedViewClasses", + "printedName": "maskedViewClasses", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC17maskedViewClassesSayyXlXpGvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "unmaskedViewClasses", + "printedName": "unmaskedViewClasses", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvpZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvgZ", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC19unmaskedViewClassesSayyXlXpGvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final" + ], + "accessorKind": "get" + } + ] + } + ], + "declKind": "Class", + "usr": "s:6Sentry0A13ReplayOptionsC13DefaultValuesC", + "mangledName": "$s6Sentry0A13ReplayOptionsC13DefaultValuesC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "hasMissingDesignatedInitializers": true + }, + { + "kind": "TypeDecl", + "name": "SentryReplayQuality", + "printedName": "SentryReplayQuality", + "children": [ + { + "kind": "Var", + "name": "low", + "printedName": "low", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO3lowyA2EmF", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO3lowyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 0 + }, + { + "kind": "Var", + "name": "medium", + "printedName": "medium", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO6mediumyA2EmF", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO6mediumyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 1 + }, + { + "kind": "Var", + "name": "high", + "printedName": "high", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryReplayOptions.SentryReplayQuality.Type) -> Sentry.SentryReplayOptions.SentryReplayQuality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO4highyA2EmF", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO4highyA2EmF", + "moduleName": "Sentry", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 2 + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvp", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvp", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvg", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO11descriptionSSvg", + "moduleName": "Sentry", + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality?", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Constructor", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueAESgSi_tcfc", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueAESgSi_tcfc", + "moduleName": "Sentry", + "implicit": true, + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivp", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivp", + "moduleName": "Sentry", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivg", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO8rawValueSivg", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Enum", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO", + "mangledName": "$s6Sentry0A13ReplayOptionsC0aB7QualityO", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC", + "RawDocComment" + ], + "enumRawTypeName": "Int", + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + } + ] + }, + { + "kind": "Var", + "name": "sessionSampleRate", + "printedName": "sessionSampleRate", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sessionSampleRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sessionSampleRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setSessionSampleRate:", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC17sessionSampleRateSfvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRateSfvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "onErrorSampleRate", + "printedName": "onErrorSampleRate", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)onErrorSampleRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)onErrorSampleRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setOnErrorSampleRate:", + "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC17onErrorSampleRateSfvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "maskAllText", + "printedName": "maskAllText", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskAllText", + "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvp", + "moduleName": "Sentry", + "objc_name": "maskAllText", + "declAttributes": [ + "ObjC", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskAllText", + "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvg", + "moduleName": "Sentry", + "implicit": true, + "objc_name": "maskAllText", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskAllText:", + "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC11maskAllTextSbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC11maskAllTextSbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "maskAllImages", + "printedName": "maskAllImages", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskAllImages", + "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvp", + "moduleName": "Sentry", + "objc_name": "maskAllImages", + "declAttributes": [ + "ObjC", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskAllImages", + "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvg", + "moduleName": "Sentry", + "implicit": true, + "objc_name": "maskAllImages", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskAllImages:", + "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC13maskAllImagesSbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC13maskAllImagesSbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "quality", + "printedName": "quality", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)quality", + "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)quality", + "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryReplayQuality", + "printedName": "Sentry.SentryReplayOptions.SentryReplayQuality", + "usr": "s:6Sentry0A13ReplayOptionsC0aB7QualityO" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setQuality:", + "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC7qualityAC0aB7QualityOvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "maskedViewClasses", + "printedName": "maskedViewClasses", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maskedViewClasses", + "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvp", + "moduleName": "Sentry", + "objc_name": "maskedViewClasses", + "declAttributes": [ + "ObjC", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maskedViewClasses", + "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvg", + "moduleName": "Sentry", + "implicit": true, + "objc_name": "maskedViewClasses", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaskedViewClasses:", + "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC17maskedViewClassesSayyXlXpGvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "unmaskedViewClasses", + "printedName": "unmaskedViewClasses", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)unmaskedViewClasses", + "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvp", + "moduleName": "Sentry", + "objc_name": "unmaskedViewClasses", + "declAttributes": [ + "ObjC", + "HasStorage", + "AccessControl", + "RawDocComment" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)unmaskedViewClasses", + "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvg", + "moduleName": "Sentry", + "implicit": true, + "objc_name": "unmaskedViewClasses", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Array", + "printedName": "[AnyObject.Type]", + "children": [ + { + "kind": "TypeNominal", + "name": "ExistentialMetatype", + "printedName": "AnyObject.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "AnyObject" + } + ] + } + ], + "usr": "s:Sa" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setUnmaskedViewClasses:", + "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC19unmaskedViewClassesSayyXlXpGvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "enableExperimentalViewRenderer", + "printedName": "enableExperimentalViewRenderer", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableExperimentalViewRenderer", + "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvp", + "moduleName": "Sentry", + "deprecated": true, + "declAttributes": [ + "AccessControl", + "Available", + "RawDocComment", + "ObjC" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableExperimentalViewRenderer", + "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvg", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableExperimentalViewRenderer:", + "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvs", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC30enableExperimentalViewRendererSbvM", + "moduleName": "Sentry", + "deprecated": true, + "implicit": true, + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "enableViewRendererV2", + "printedName": "enableViewRendererV2", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableViewRendererV2", + "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableViewRendererV2", + "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableViewRendererV2:", + "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2Sbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC20enableViewRendererV2SbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC20enableViewRendererV2SbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "enableFastViewRendering", + "printedName": "enableFastViewRendering", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)enableFastViewRendering", + "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)enableFastViewRendering", + "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setEnableFastViewRendering:", + "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC23enableFastViewRenderingSbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "replayBitRate", + "printedName": "replayBitRate", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)replayBitRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC13replayBitRateSivp", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)replayBitRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC13replayBitRateSivg", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "sizeScale", + "printedName": "sizeScale", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sizeScale", + "mangledName": "$s6Sentry0A13ReplayOptionsC9sizeScaleSfvp", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sizeScale", + "mangledName": "$s6Sentry0A13ReplayOptionsC9sizeScaleSfvg", + "moduleName": "Sentry", + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "frameRate", + "printedName": "frameRate", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)frameRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)frameRate", + "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setFrameRate:", + "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC9frameRateSuvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC9frameRateSuvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "errorReplayDuration", + "printedName": "errorReplayDuration", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)errorReplayDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)errorReplayDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setErrorReplayDuration:", + "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC05errorB8DurationSdvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC05errorB8DurationSdvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "sessionSegmentDuration", + "printedName": "sessionSegmentDuration", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)sessionSegmentDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)sessionSegmentDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setSessionSegmentDuration:", + "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC22sessionSegmentDurationSdvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "maximumDuration", + "printedName": "maximumDuration", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(py)maximumDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasStorage", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)maximumDuration", + "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)setMaximumDuration:", + "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A13ReplayOptionsC15maximumDurationSdvM", + "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayOptions", + "printedName": "Sentry.SentryReplayOptions", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)init", + "mangledName": "$s6Sentry0A13ReplayOptionsCACycfc", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override", + "Convenience", + "AccessControl", + "RawDocComment" + ], + "init_kind": "Convenience" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(dictionary:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayOptions", + "printedName": "Sentry.SentryReplayOptions", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)initWithDictionary:", + "mangledName": "$s6Sentry0A13ReplayOptionsC10dictionaryACSDySSypG_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "Convenience", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Convenience" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(sessionSampleRate:onErrorSampleRate:maskAllText:maskAllImages:enableViewRendererV2:enableFastViewRendering:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayOptions", + "printedName": "Sentry.SentryReplayOptions", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "hasDefaultArg": true, + "usr": "s:Sf" + }, + { + "kind": "TypeNominal", + "name": "Float", + "printedName": "Swift.Float", + "hasDefaultArg": true, + "usr": "s:Sf" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "hasDefaultArg": true, + "usr": "s:Sb" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)initWithSessionSampleRate:onErrorSampleRate:maskAllText:maskAllImages:enableViewRendererV2:enableFastViewRendering:", + "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRate07onErroreF011maskAllText0iJ6Images20enableViewRendererV20m4FastN9RenderingACSf_SfS4btcfc", + "moduleName": "Sentry", + "declAttributes": [ + "Convenience", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "init_kind": "Convenience" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions", + "mangledName": "$s6Sentry0A13ReplayOptionsC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjCMembers", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "hasMissingDesignatedInitializers": true, + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "SentryRedactOptions", + "printedName": "SentryRedactOptions", + "usr": "c:@M@Sentry@objc(pl)SentryRedactOptions", + "mangledName": "$s6Sentry0A13RedactOptionsP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "CoreGraphics", + "printedName": "CoreGraphics", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryEventDecoder", + "printedName": "SentryEventDecoder", + "children": [ + { + "kind": "Function", + "name": "decodeEvent", + "printedName": "decodeEvent(jsonData:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.Event?", + "children": [ + { + "kind": "TypeNominal", + "name": "Event", + "printedName": "Sentry.Event", + "usr": "c:objc(cs)SentryEvent" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Data", + "printedName": "Foundation.Data", + "usr": "s:10Foundation4DataV" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder(cm)decodeEventWithJsonData:", + "mangledName": "$s6Sentry0A12EventDecoderC06decodeB08jsonDataSo0aB0CSg10Foundation0F0V_tFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryEventDecoder", + "printedName": "Sentry.SentryEventDecoder", + "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder(im)init", + "mangledName": "$s6Sentry0A12EventDecoderCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder", + "mangledName": "$s6Sentry0A12EventDecoderC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjCMembers", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryUserFeedbackConfiguration", + "printedName": "SentryUserFeedbackConfiguration", + "children": [ + { + "kind": "Var", + "name": "animations", + "printedName": "animations", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)animations", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)animations", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setAnimations:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC10animationsSbvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "configureWidget", + "printedName": "configureWidget", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackWidgetConfiguration", + "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureWidget", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackWidgetConfiguration", + "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureWidget", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackWidgetConfiguration", + "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureWidget:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "useShakeGesture", + "printedName": "useShakeGesture", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)useShakeGesture", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)useShakeGesture", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setUseShakeGesture:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "showFormForScreenshots", + "printedName": "showFormForScreenshots", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)showFormForScreenshots", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)showFormForScreenshots", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setShowFormForScreenshots:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "customButton", + "printedName": "customButton", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "UIKit.UIButton?", + "children": [ + { + "kind": "TypeNominal", + "name": "UIButton", + "printedName": "UIKit.UIButton", + "usr": "c:objc(cs)UIButton" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)customButton", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "UIKit.UIButton?", + "children": [ + { + "kind": "TypeNominal", + "name": "UIButton", + "printedName": "UIKit.UIButton", + "usr": "c:objc(cs)UIButton" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)customButton", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "UIKit.UIButton?", + "children": [ + { + "kind": "TypeNominal", + "name": "UIButton", + "printedName": "UIKit.UIButton", + "usr": "c:objc(cs)UIButton" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setCustomButton:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "configureForm", + "printedName": "configureForm", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackFormConfiguration", + "printedName": "Sentry.SentryUserFeedbackFormConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureForm", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackFormConfiguration", + "printedName": "Sentry.SentryUserFeedbackFormConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureForm", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackFormConfiguration", + "printedName": "Sentry.SentryUserFeedbackFormConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureForm:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "tags", + "printedName": "tags", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)tags", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)tags", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "[Swift.String : Any]?", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setTags:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "onFormOpen", + "printedName": "onFormOpen", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onFormOpen", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onFormOpen", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnFormOpen:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "onFormClose", + "printedName": "onFormClose", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onFormClose", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onFormClose", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(() -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "() -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnFormClose:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "onSubmitSuccess", + "printedName": "onSubmitSuccess", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(([Swift.String : Any]) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "([Swift.String : Any]) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onSubmitSuccess", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(([Swift.String : Any]) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "([Swift.String : Any]) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onSubmitSuccess", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "(([Swift.String : Any]) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "([Swift.String : Any]) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Any]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:SD" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnSubmitSuccess:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { "kind": "TypeNominal", "name": "Void", "printedName": "()" } ], "declKind": "Accessor", - "usr": "s:6Sentry0A13ReplayOptionsC15maximumDurationSdvM", - "mangledName": "$s6Sentry0A13ReplayOptionsC15maximumDurationSdvM", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvM", "moduleName": "Sentry", "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], "accessorKind": "_modify" } ] }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Var", + "name": "onSubmitError", + "printedName": "onSubmitError", "children": [ { "kind": "TypeNominal", - "name": "SentryReplayOptions", - "printedName": "Sentry.SentryReplayOptions", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + "name": "Optional", + "printedName": "((Swift.Error) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Error) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + } + ] + } + ], + "usr": "s:Sq" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)init", - "mangledName": "$s6Sentry0A13ReplayOptionsCACycfc", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onSubmitError", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvp", "moduleName": "Sentry", - "overriding": true, - "objc_name": "init", "declAttributes": [ - "Dynamic", - "ObjC", - "Override", - "Convenience", + "HasInitialValue", + "HasStorage", "AccessControl", - "RawDocComment" + "RawDocComment", + "ObjC" ], - "init_kind": "Convenience" - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init(dictionary:)", - "children": [ + "hasStorage": true, + "accessors": [ { - "kind": "TypeNominal", - "name": "SentryReplayOptions", - "printedName": "Sentry.SentryReplayOptions", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Swift.Error) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Error) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onSubmitError", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", "children": [ { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" + "name": "Optional", + "printedName": "((Swift.Error) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.Error) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + } + ] + } + ], + "usr": "s:Sq" } ], - "usr": "s:SD" + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnSubmitError:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "configureTheme", + "printedName": "configureTheme", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)initWithDictionary:", - "mangledName": "$s6Sentry0A13ReplayOptionsC10dictionaryACSDySSypG_tcfc", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureTheme", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvp", "moduleName": "Sentry", "declAttributes": [ - "Convenience", + "HasInitialValue", + "HasStorage", "AccessControl", - "SPIAccessControl", "RawDocComment", "ObjC" ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Convenience" - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init(sessionSampleRate:onErrorSampleRate:maskAllText:maskAllImages:enableViewRendererV2:enableFastViewRendering:)", - "children": [ + "hasStorage": true, + "accessors": [ { - "kind": "TypeNominal", - "name": "SentryReplayOptions", - "printedName": "Sentry.SentryReplayOptions", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions" + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureTheme", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "hasDefaultArg": true, - "usr": "s:Sf" + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureTheme:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" }, { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "hasDefaultArg": true, - "usr": "s:Sf" - }, + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "configureDarkTheme", + "printedName": "configureDarkTheme", + "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "hasDefaultArg": true, - "usr": "s:Sb" - }, + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureDarkTheme", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "hasDefaultArg": true, - "usr": "s:Sb" + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureDarkTheme", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" }, { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "hasDefaultArg": true, - "usr": "s:Sb" + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryUserFeedbackThemeConfiguration", + "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" + } + ] + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureDarkTheme:", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvM", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvM", + "moduleName": "Sentry", + "implicit": true, + "intro_iOS": "13.0", + "declAttributes": [ + "Available" + ], + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "hasDefaultArg": true, - "usr": "s:Sb" + "name": "SentryUserFeedbackConfiguration", + "printedName": "Sentry.SentryUserFeedbackConfiguration", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions(im)initWithSessionSampleRate:onErrorSampleRate:maskAllText:maskAllImages:enableViewRendererV2:enableFastViewRendering:", - "mangledName": "$s6Sentry0A13ReplayOptionsC17sessionSampleRate07onErroreF011maskAllText0iJ6Images20enableViewRendererV20m4FastN9RenderingACSf_SfS4btcfc", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)init", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationCACycfc", "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "Convenience", - "AccessControl", - "RawDocComment", - "ObjC" + "Dynamic", + "ObjC", + "Override" ], - "init_kind": "Convenience" + "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryReplayOptions", - "mangledName": "$s6Sentry0A13ReplayOptionsC", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration", + "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC", "moduleName": "Sentry", + "intro_iOS": "13.0", "declAttributes": [ "AccessControl", "ObjCMembers", + "Available", + "RawDocComment", "ObjC" ], "superclassUsr": "c:objc(cs)NSObject", - "hasMissingDesignatedInitializers": true, "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], "conformances": [ - { - "kind": "Conformance", - "name": "SentryRedactOptions", - "printedName": "SentryRedactOptions", - "usr": "c:@M@Sentry@objc(pl)SentryRedactOptions", - "mangledName": "$s6Sentry0A13RedactOptionsP" - }, { "kind": "Conformance", "name": "Equatable", @@ -7250,23 +12964,6 @@ } ] }, - { - "kind": "Import", - "name": "CoreGraphics", - "printedName": "CoreGraphics", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", - "moduleName": "Sentry", - "declAttributes": [ - "ImplementationOnly" - ] - }, { "kind": "Import", "name": "Foundation", @@ -7275,69 +12972,269 @@ "moduleName": "Sentry" }, { - "kind": "Import", - "name": "_SentryPrivate", - "printedName": "_SentryPrivate", - "declKind": "Import", + "kind": "TypeDecl", + "name": "SentryCurrentDateProvider", + "printedName": "SentryCurrentDateProvider", + "children": [ + { + "kind": "Function", + "name": "date", + "printedName": "date()", + "children": [ + { + "kind": "TypeNominal", + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)date", + "mangledName": "$s6Sentry0A19CurrentDateProviderP4date10Foundation0C0VyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "timezoneOffset", + "printedName": "timezoneOffset()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)timezoneOffset", + "mangledName": "$s6Sentry0A19CurrentDateProviderP14timezoneOffsetSiyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "systemTime", + "printedName": "systemTime()", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt64", + "printedName": "Swift.UInt64", + "usr": "s:s6UInt64V" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)systemTime", + "mangledName": "$s6Sentry0A19CurrentDateProviderP10systemTimes6UInt64VyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "systemUptime", + "printedName": "systemUptime()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)systemUptime", + "mangledName": "$s6Sentry0A19CurrentDateProviderP12systemUptimeSdyF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider", + "mangledName": "$s6Sentry0A19CurrentDateProviderP", "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", "declAttributes": [ - "ImplementationOnly" + "AccessControl", + "SPIAccessControl", + "ObjC", + "RawDocComment" + ], + "spi_group_names": [ + "Private" ] }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "TypeDecl", - "name": "SentryEventDecoder", - "printedName": "SentryEventDecoder", + "name": "SentryDefaultCurrentDateProvider", + "printedName": "SentryDefaultCurrentDateProvider", "children": [ { "kind": "Function", - "name": "decodeEvent", - "printedName": "decodeEvent(jsonData:)", + "name": "date", + "printedName": "date()", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "Sentry.Event?", - "children": [ - { - "kind": "TypeNominal", - "name": "Event", - "printedName": "Sentry.Event", - "usr": "c:objc(cs)SentryEvent" - } - ], - "usr": "s:Sq" - }, + "name": "Date", + "printedName": "Foundation.Date", + "usr": "s:10Foundation4DateV" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)date", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC4date10Foundation0D0VyF", + "moduleName": "Sentry", + "objc_name": "date", + "declAttributes": [ + "ObjC", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "timezoneOffset", + "printedName": "timezoneOffset()", + "children": [ { "kind": "TypeNominal", - "name": "Data", - "printedName": "Foundation.Data", - "usr": "s:10Foundation4DataV" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder(cm)decodeEventWithJsonData:", - "mangledName": "$s6Sentry0A12EventDecoderC06decodeB08jsonDataSo0aB0CSg10Foundation0F0V_tFZ", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)timezoneOffset", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC14timezoneOffsetSiyF", + "moduleName": "Sentry", + "objc_name": "timezoneOffset", + "declAttributes": [ + "ObjC", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "systemTime", + "printedName": "systemTime()", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt64", + "printedName": "Swift.UInt64", + "usr": "s:s6UInt64V" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)systemTime", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC10systemTimes6UInt64VyF", + "moduleName": "Sentry", + "objc_name": "systemTime", + "declAttributes": [ + "ObjC", + "AccessControl", + "RawDocComment" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "systemUptime", + "printedName": "systemUptime()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)systemUptime", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC12systemUptimeSdyF", + "moduleName": "Sentry", + "objc_name": "systemUptime", + "declAttributes": [ + "ObjC", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "getAbsoluteTime", + "printedName": "getAbsoluteTime()", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt64", + "printedName": "Swift.UInt64", + "usr": "s:s6UInt64V" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(cm)getAbsoluteTime", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC15getAbsoluteTimes6UInt64VyFZ", "moduleName": "Sentry", "static": true, "declAttributes": [ "Final", "AccessControl", - "SPIAccessControl", "ObjC" ], "spi_group_names": [ @@ -7352,14 +13249,14 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryEventDecoder", - "printedName": "Sentry.SentryEventDecoder", - "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder" + "name": "SentryDefaultCurrentDateProvider", + "printedName": "Sentry.SentryDefaultCurrentDateProvider", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder(im)init", - "mangledName": "$s6Sentry0A12EventDecoderCACycfc", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)init", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderCACycfc", "moduleName": "Sentry", "overriding": true, "implicit": true, @@ -7369,24 +13266,38 @@ "ObjC", "Override" ], + "spi_group_names": [ + "Private" + ], "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryEventDecoder", - "mangledName": "$s6Sentry0A12EventDecoderC", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider", + "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC", "moduleName": "Sentry", "declAttributes": [ "AccessControl", + "SPIAccessControl", "ObjCMembers", "ObjC" ], + "spi_group_names": [ + "Private" + ], "superclassUsr": "c:objc(cs)NSObject", "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], "conformances": [ + { + "kind": "Conformance", + "name": "SentryCurrentDateProvider", + "printedName": "SentryCurrentDateProvider", + "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider", + "mangledName": "$s6Sentry0A19CurrentDateProviderP" + }, { "kind": "Conformance", "name": "Equatable", @@ -7438,13 +13349,6 @@ } ] }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "Import", "name": "UIKit", @@ -7454,484 +13358,304 @@ }, { "kind": "TypeDecl", - "name": "SentryUserFeedbackConfiguration", - "printedName": "SentryUserFeedbackConfiguration", + "name": "SentryViewRenderer", + "printedName": "SentryViewRenderer", "children": [ { - "kind": "Var", - "name": "animations", - "printedName": "animations", + "kind": "Function", + "name": "render", + "printedName": "render(view:)", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)animations", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvp", - "moduleName": "Sentry", - "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)animations", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setAnimations:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC10animationsSbvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10animationsSbvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "UIView", + "printedName": "UIKit.UIView", + "usr": "c:objc(cs)UIView" } - ] - }, + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer(im)renderWithView:", + "mangledName": "$s6Sentry0A12ViewRendererP6render4viewSo7UIImageCSo6UIViewC_tF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryViewRenderer>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer", + "mangledName": "$s6Sentry0A12ViewRendererP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryProfileOptions", + "printedName": "SentryProfileOptions", + "children": [ { - "kind": "Var", - "name": "configureWidget", - "printedName": "configureWidget", + "kind": "TypeDecl", + "name": "SentryProfileLifecycle", + "printedName": "SentryProfileLifecycle", "children": [ { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "kind": "Var", + "name": "manual", + "printedName": "manual", "children": [ { "kind": "TypeFunc", "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "printedName": "(Sentry.SentryProfileOptions.SentryProfileLifecycle.Type) -> Sentry.SentryProfileOptions.SentryProfileLifecycle", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" }, { "kind": "TypeNominal", - "name": "SentryUserFeedbackWidgetConfiguration", - "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureWidget", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvp", - "moduleName": "Sentry", - "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "name": "Metatype", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle.Type", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackWidgetConfiguration", - "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ] } - ], - "usr": "s:Sq" + ] } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureWidget", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvg", + "declKind": "EnumElement", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO6manualyA2EmF", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO6manualyA2EmF", "moduleName": "Sentry", - "implicit": true, "declAttributes": [ + "RawDocComment", "ObjC" ], - "accessorKind": "get" + "fixedbinaryorder": 0 }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "Var", + "name": "trace", + "printedName": "trace", "children": [ { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackWidgetConfiguration) -> ())?", + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.SentryProfileOptions.SentryProfileLifecycle.Type) -> Sentry.SentryProfileOptions.SentryProfileLifecycle", "children": [ { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackWidgetConfiguration) -> ()", + "kind": "TypeNominal", + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle.Type", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackWidgetConfiguration", - "printedName": "Sentry.SentryUserFeedbackWidgetConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackWidgetConfiguration" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ] } - ], - "usr": "s:Sq" + ] } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureWidget:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvs", + "declKind": "EnumElement", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO5traceyA2EmF", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO5traceyA2EmF", "moduleName": "Sentry", - "implicit": true, "declAttributes": [ + "RawDocComment", "ObjC" ], - "accessorKind": "set" + "fixedbinaryorder": 1 }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15configureWidgetyAA0abcfD0CcSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "useShakeGesture", - "printedName": "useShakeGesture", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)useShakeGesture", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvp", - "moduleName": "Sentry", - "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ + "name": "Optional", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle?", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" + } + ], + "usr": "s:Sq" + }, { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)useShakeGesture", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvg", + "declKind": "Constructor", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueAESgSi_tcfc", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueAESgSi_tcfc", "moduleName": "Sentry", "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "init_kind": "Designated" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setUseShakeGesture:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvs", + "declKind": "Var", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivp", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivp", "moduleName": "Sentry", "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ + "accessors": [ { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivg", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivg", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "get" } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15useShakeGestureSbvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" - } - ] - }, - { - "kind": "Var", - "name": "showFormForScreenshots", - "printedName": "showFormForScreenshots", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + ] } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)showFormForScreenshots", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvp", + "declKind": "Enum", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO", + "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO", "moduleName": "Sentry", "declAttributes": [ - "HasInitialValue", - "HasStorage", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, - "accessors": [ + "enumRawTypeName": "Int", + "conformances": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)showFormForScreenshots", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setShowFormForScreenshots:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", "children": [ { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ] } ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC22showFormForScreenshotsSbvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" + "usr": "s:SY", + "mangledName": "$sSY" } ] }, { "kind": "Var", - "name": "customButton", - "printedName": "customButton", + "name": "lifecycle", + "printedName": "lifecycle", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "UIKit.UIButton?", - "children": [ - { - "kind": "TypeNominal", - "name": "UIButton", - "printedName": "UIKit.UIButton", - "usr": "c:objc(cs)UIButton" - } - ], - "usr": "s:Sq" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)customButton", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)lifecycle", + "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -7949,22 +13673,14 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "UIKit.UIButton?", - "children": [ - { - "kind": "TypeNominal", - "name": "UIButton", - "printedName": "UIKit.UIButton", - "usr": "c:objc(cs)UIButton" - } - ], - "usr": "s:Sq" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)customButton", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)lifecycle", + "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -7984,22 +13700,14 @@ }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "UIKit.UIButton?", - "children": [ - { - "kind": "TypeNominal", - "name": "UIButton", - "printedName": "UIKit.UIButton", - "usr": "c:objc(cs)UIButton" - } - ], - "usr": "s:Sq" + "name": "SentryProfileLifecycle", + "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", + "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setCustomButton:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setLifecycle:", + "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8019,53 +13727,29 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC12customButtonSo8UIButtonCSgvM", + "usr": "s:6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvM", + "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvM", "moduleName": "Sentry", "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], "accessorKind": "_modify" } ] }, { - "kind": "Var", - "name": "configureForm", - "printedName": "configureForm", + "kind": "Var", + "name": "sessionSampleRate", + "printedName": "sessionSampleRate", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackFormConfiguration", - "printedName": "Sentry.SentryUserFeedbackFormConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureForm", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)sessionSampleRate", + "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -8083,34 +13767,14 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackFormConfiguration", - "printedName": "Sentry.SentryUserFeedbackFormConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureForm", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)sessionSampleRate", + "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8130,34 +13794,14 @@ }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackFormConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackFormConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackFormConfiguration", - "printedName": "Sentry.SentryUserFeedbackFormConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackFormConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "Float", + "printedName": "Swift.Float", + "usr": "s:Sf" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureForm:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setSessionSampleRate:", + "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8177,54 +13821,29 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13configureFormyAA0abcfD0CcSgvM", + "usr": "s:6Sentry0A14ProfileOptionsC17sessionSampleRateSfvM", + "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvM", "moduleName": "Sentry", "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], "accessorKind": "_modify" } ] }, { "kind": "Var", - "name": "tags", - "printedName": "tags", + "name": "profileAppStarts", + "printedName": "profileAppStarts", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "[Swift.String : Any]?", - "children": [ - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ], - "usr": "s:Sq" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)tags", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)profileAppStarts", + "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -8242,35 +13861,14 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "[Swift.String : Any]?", - "children": [ - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ], - "usr": "s:Sq" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)tags", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)profileAppStarts", + "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8290,35 +13888,14 @@ }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "[Swift.String : Any]?", - "children": [ - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ], - "usr": "s:Sq" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setTags:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setProfileAppStarts:", + "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -8338,569 +13915,724 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC4tagsSDySSypGSgvM", + "usr": "s:6Sentry0A14ProfileOptionsC16profileAppStartsSbvM", + "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvM", "moduleName": "Sentry", "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], "accessorKind": "_modify" } ] }, { - "kind": "Var", - "name": "onFormOpen", - "printedName": "onFormOpen", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", + "name": "SentryProfileOptions", + "printedName": "Sentry.SentryProfileOptions", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)init", + "mangledName": "$s6Sentry0A14ProfileOptionsCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions", + "mangledName": "$s6Sentry0A14ProfileOptionsC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjCMembers", + "RawDocComment", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "HTTPHeaderSanitizer", + "printedName": "HTTPHeaderSanitizer", + "children": [ + { + "kind": "Function", + "name": "sanitizeHeaders", + "printedName": "sanitizeHeaders(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", "children": [ { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "usr": "s:Sq" + "usr": "s:SD" + }, + { + "kind": "TypeNominal", + "name": "Dictionary", + "printedName": "[Swift.String : Swift.String]", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer(cm)sanitizeHeaders:", + "mangledName": "$s6Sentry19HTTPHeaderSanitizerC15sanitizeHeadersySDyS2SGAEFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "HTTPHeaderSanitizer", + "printedName": "Sentry.HTTPHeaderSanitizer", + "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer(im)init", + "mangledName": "$s6Sentry19HTTPHeaderSanitizerCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer", + "mangledName": "$s6Sentry19HTTPHeaderSanitizerC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryViewRendererV2", + "printedName": "SentryViewRendererV2", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(enableFastViewRendering:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryViewRendererV2", + "printedName": "Sentry.SentryViewRendererV2", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onFormOpen", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvp", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)initWithEnableFastViewRendering:", + "mangledName": "$s6Sentry0A14ViewRendererV2C010enableFastB9RenderingACSb_tcfc", "moduleName": "Sentry", "declAttributes": [ - "HasInitialValue", - "HasStorage", "AccessControl", - "RawDocComment", "ObjC" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onFormOpen", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "render", + "printedName": "render(view:)", + "children": [ { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnFormOpen:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "TypeNominal", + "name": "UIImage", + "printedName": "UIKit.UIImage", + "usr": "c:objc(cs)UIImage" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC10onFormOpenyycSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "UIView", + "printedName": "UIKit.UIView", + "usr": "c:objc(cs)UIView" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)renderWithView:", + "mangledName": "$s6Sentry0A14ViewRendererV2C6render4viewSo7UIImageCSo6UIViewC_tF", + "moduleName": "Sentry", + "objc_name": "renderWithView:", + "declAttributes": [ + "ObjC", + "AccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "onFormClose", - "printedName": "onFormClose", + "kind": "Constructor", + "name": "init", + "printedName": "init()", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" + "name": "SentryViewRendererV2", + "printedName": "Sentry.SentryViewRendererV2", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onFormClose", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvp", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)init", + "mangledName": "$s6Sentry0A14ViewRendererV2CACycfc", "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" + "Dynamic", + "ObjC", + "Override" ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onFormClose", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(() -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "() -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnFormClose:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC11onFormCloseyycSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" - } - ] + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2", + "mangledName": "$s6Sentry0A14ViewRendererV2C", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "SentryViewRenderer", + "printedName": "SentryViewRenderer", + "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer", + "mangledName": "$s6Sentry0A12ViewRendererP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryId", + "printedName": "SentryId", + "children": [ { "kind": "Var", - "name": "onSubmitSuccess", - "printedName": "onSubmitSuccess", + "name": "empty", + "printedName": "empty", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "(([Swift.String : Any]) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "([Swift.String : Any]) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ] - } - ], - "usr": "s:Sq" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onSubmitSuccess", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryId(cpy)empty", + "mangledName": "$s6Sentry0A2IdC5emptyACvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ "HasInitialValue", + "Final", "HasStorage", "AccessControl", "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(([Swift.String : Any]) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "([Swift.String : Any]) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onSubmitSuccess", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, + "ObjC" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ { "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "(([Swift.String : Any]) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "([Swift.String : Any]) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Dictionary", - "printedName": "[Swift.String : Any]", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - }, - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:SD" - } - ] - } - ], - "usr": "s:Sq" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnSubmitSuccess:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryId(cm)empty", + "mangledName": "$s6Sentry0A2IdC5emptyACvgZ", "moduleName": "Sentry", + "static": true, "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "sentryIdString", + "printedName": "sentryIdString", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryId(py)sentryIdString", + "mangledName": "$s6Sentry0A2IdC06sentryB6StringSSvp", + "moduleName": "Sentry", + "declAttributes": [ + "Final", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "accessors": [ { "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC15onSubmitSuccessySDySSypGcSgvM", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)sentryIdString", + "mangledName": "$s6Sentry0A2IdC06sentryB6StringSSvg", "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", "declAttributes": [ - "Available" + "Final", + "ObjC" ], - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { - "kind": "Var", - "name": "onSubmitError", - "printedName": "onSubmitError", + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)init", + "mangledName": "$s6Sentry0A2IdCACycfc", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override", + "AccessControl", + "RawDocComment" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(uuid:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "UUID", + "printedName": "Foundation.UUID", + "usr": "s:10Foundation4UUIDV" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)initWithUuid:", + "mangledName": "$s6Sentry0A2IdC4uuidAC10Foundation4UUIDV_tcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "RawDocComment", + "ObjC" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(uuidString:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)initWithUUIDString:", + "mangledName": "$s6Sentry0A2IdC10uuidStringACSS_tcfc", + "moduleName": "Sentry", + "objc_name": "initWithUUIDString:", + "declAttributes": [ + "AccessControl", + "ObjC", + "RawDocComment" + ], + "init_kind": "Designated" + }, + { + "kind": "Function", + "name": "isEqual", + "printedName": "isEqual(_:)", "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, { "kind": "TypeNominal", "name": "Optional", - "printedName": "((Swift.Error) -> ())?", + "printedName": "Any?", "children": [ { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Swift.Error) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Error", - "printedName": "Swift.Error", - "usr": "s:s5ErrorP" - } - ] + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" } ], "usr": "s:Sq" } ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)isEqual:", + "mangledName": "$s6Sentry0A2IdC7isEqualySbypSgF", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "isEqual:", + "declAttributes": [ + "Final", + "ObjC", + "AccessControl", + "Override" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Var", + "name": "description", + "printedName": "description", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)onSubmitError", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryId(py)description", + "mangledName": "$s6Sentry0A2IdC11descriptionSSvp", "moduleName": "Sentry", + "overriding": true, + "objc_name": "description", "declAttributes": [ - "HasInitialValue", - "HasStorage", + "Final", + "ObjC", "AccessControl", - "RawDocComment", - "ObjC" + "Override" ], - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -8909,155 +14641,190 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Swift.Error) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Swift.Error) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Error", - "printedName": "Swift.Error", - "usr": "s:s5ErrorP" - } - ] - } - ], - "usr": "s:Sq" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)onSubmitError", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)description", + "mangledName": "$s6Sentry0A2IdC11descriptionSSvg", "moduleName": "Sentry", - "implicit": true, + "overriding": true, + "objc_name": "description", "declAttributes": [ + "Final", "ObjC" ], "accessorKind": "get" - }, + } + ] + }, + { + "kind": "Var", + "name": "hash", + "printedName": "hash", + "children": [ { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Swift.Error) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Swift.Error) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Error", - "printedName": "Swift.Error", - "usr": "s:s5ErrorP" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setOnSubmitError:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryId(py)hash", + "mangledName": "$s6Sentry0A2IdC4hashSivp", + "moduleName": "Sentry", + "overriding": true, + "objc_name": "hash", + "declAttributes": [ + "Final", + "ObjC", + "AccessControl", + "Override" + ], + "accessors": [ { "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" } ], "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC13onSubmitErrorys0G0_pcSgvM", + "usr": "c:@M@Sentry@objc(cs)SentryId(im)hash", + "mangledName": "$s6Sentry0A2IdC4hashSivg", "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", + "overriding": true, + "objc_name": "hash", "declAttributes": [ - "Available" + "Final", + "ObjC" ], - "accessorKind": "_modify" + "accessorKind": "get" } ] + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryId", + "mangledName": "$s6Sentry0A2IdC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "Final", + "ObjCMembers", + "ObjC" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryFramesDelayResult", + "printedName": "SentryFramesDelayResult", + "children": [ { "kind": "Var", - "name": "configureTheme", - "printedName": "configureTheme", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "delayDuration", + "printedName": "delayDuration", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureTheme", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(py)delayDuration", + "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDurationSdvp", "moduleName": "Sentry", "declAttributes": [ - "HasInitialValue", + "Final", "HasStorage", "AccessControl", "RawDocComment", "ObjC" ], + "spi_group_names": [ + "Private" + ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -9067,155 +14834,53 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureTheme", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureTheme:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvs", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)delayDuration", + "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDurationSdvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC14configureThemeyAA0abcfD0CcSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" + "spi_group_names": [ + "Private" ], - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "configureDarkTheme", - "printedName": "configureDarkTheme", + "name": "framesContributingToDelayCount", + "printedName": "framesContributingToDelayCount", "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(py)configureDarkTheme", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvp", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(py)framesContributingToDelayCount", + "mangledName": "$s6Sentry0A17FramesDelayResultC020framesContributingToC5CountSuvp", "moduleName": "Sentry", "declAttributes": [ - "HasInitialValue", + "Final", "HasStorage", "AccessControl", - "RawDocComment", "ObjC" ], + "spi_group_names": [ + "Private" + ], + "isLet": true, "hasStorage": true, "accessors": [ { @@ -9225,111 +14890,63 @@ "children": [ { "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)configureDarkTheme", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvg", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)framesContributingToDelayCount", + "mangledName": "$s6Sentry0A17FramesDelayResultC020framesContributingToC5CountSuvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ + "Final", "ObjC" ], + "spi_group_names": [ + "Private" + ], "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(delayDuration:framesContributingToDelayCount:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryFramesDelayResult", + "printedName": "Sentry.SentryFramesDelayResult", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "((Sentry.SentryUserFeedbackThemeConfiguration) -> ())?", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryUserFeedbackThemeConfiguration) -> ()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryUserFeedbackThemeConfiguration", - "printedName": "Sentry.SentryUserFeedbackThemeConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackThemeConfiguration" - } - ] - } - ], - "usr": "s:Sq" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)setConfigureDarkTheme:", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvM", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC18configureDarkThemeyAA0abcgD0CcSgvM", - "moduleName": "Sentry", - "implicit": true, - "intro_iOS": "13.0", - "declAttributes": [ - "Available" - ], - "accessorKind": "_modify" + "kind": "TypeNominal", + "name": "UInt", + "printedName": "Swift.UInt", + "usr": "s:Su" } - ] + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)initWithDelayDuration:framesContributingToDelayCount:", + "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDuration020framesContributingToC5CountACSd_Sutcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" }, { "kind": "Constructor", @@ -9338,14 +14955,14 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryUserFeedbackConfiguration", - "printedName": "Sentry.SentryUserFeedbackConfiguration", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration" + "name": "SentryFramesDelayResult", + "printedName": "Sentry.SentryFramesDelayResult", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration(im)init", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationCACycfc", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)init", + "mangledName": "$s6Sentry0A17FramesDelayResultCACycfc", "moduleName": "Sentry", "overriding": true, "implicit": true, @@ -9355,23 +14972,26 @@ "ObjC", "Override" ], + "spi_group_names": [ + "Private" + ], "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryUserFeedbackConfiguration", - "mangledName": "$s6Sentry0A25UserFeedbackConfigurationC", + "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult", + "mangledName": "$s6Sentry0A17FramesDelayResultC", "moduleName": "Sentry", - "intro_iOS": "13.0", "declAttributes": [ "AccessControl", + "SPIAccessControl", "ObjCMembers", - "Available", - "RawDocComment", "ObjC" ], + "spi_group_names": [ + "Private" + ], "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], @@ -9436,56 +15056,34 @@ }, { "kind": "TypeDecl", - "name": "SentryCurrentDateProvider", - "printedName": "SentryCurrentDateProvider", + "name": "SentryANRTracker", + "printedName": "SentryANRTracker", "children": [ { "kind": "Function", - "name": "date", - "printedName": "date()", + "name": "add", + "printedName": "add(listener:)", "children": [ { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)date", - "mangledName": "$s6Sentry0A19CurrentDateProviderP4date10Foundation0C0VyF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - }, - { - "kind": "Function", - "name": "timezoneOffset", - "printedName": "timezoneOffset()", - "children": [ + "name": "Void", + "printedName": "()" + }, { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "SentryANRTrackerDelegate", + "printedName": "Sentry.SentryANRTrackerDelegate", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)timezoneOffset", - "mangledName": "$s6Sentry0A19CurrentDateProviderP14timezoneOffsetSiyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)addListener:", + "mangledName": "$s6Sentry0A10ANRTrackerP3add8listeneryAA0aB8Delegate_p_tF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", + "sugared_genericSig": "", "protocolReq": true, + "objc_name": "addListener:", "declAttributes": [ "ObjC" ], @@ -9497,23 +15095,29 @@ }, { "kind": "Function", - "name": "systemTime", - "printedName": "systemTime()", + "name": "remove", + "printedName": "remove(listener:)", "children": [ { "kind": "TypeNominal", - "name": "UInt64", - "printedName": "Swift.UInt64", - "usr": "s:s6UInt64V" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryANRTrackerDelegate", + "printedName": "Sentry.SentryANRTrackerDelegate", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)systemTime", - "mangledName": "$s6Sentry0A19CurrentDateProviderP10systemTimes6UInt64VyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)removeListener:", + "mangledName": "$s6Sentry0A10ANRTrackerP6remove8listeneryAA0aB8Delegate_p_tF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", + "sugared_genericSig": "", "protocolReq": true, + "objc_name": "removeListener:", "declAttributes": [ "ObjC" ], @@ -9525,24 +15129,24 @@ }, { "kind": "Function", - "name": "systemUptime", - "printedName": "systemUptime()", + "name": "clear", + "printedName": "clear()", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider(im)systemUptime", - "mangledName": "$s6Sentry0A19CurrentDateProviderP12systemUptimeSdyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)clear", + "mangledName": "$s6Sentry0A10ANRTrackerP5clearyyF", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryCurrentDateProvider>", - "sugared_genericSig": "", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", + "sugared_genericSig": "", "protocolReq": true, "declAttributes": [ + "RawDocComment", "ObjC" ], "spi_group_names": [ @@ -9553,109 +15157,188 @@ } ], "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider", - "mangledName": "$s6Sentry0A19CurrentDateProviderP", + "usr": "c:@M@Sentry@objc(pl)SentryANRTracker", + "mangledName": "$s6Sentry0A10ANRTrackerP", "moduleName": "Sentry", "genericSig": "<τ_0_0 : AnyObject>", "sugared_genericSig": "", "declAttributes": [ "AccessControl", "SPIAccessControl", - "ObjC", - "RawDocComment" + "ObjC" ], "spi_group_names": [ "Private" ] }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "TypeDecl", - "name": "SentryDefaultCurrentDateProvider", - "printedName": "SentryDefaultCurrentDateProvider", + "name": "SentryANRTrackerDelegate", + "printedName": "SentryANRTrackerDelegate", "children": [ { "kind": "Function", - "name": "date", - "printedName": "date()", + "name": "anrDetected", + "printedName": "anrDetected(type:)", "children": [ { "kind": "TypeNominal", - "name": "Date", - "printedName": "Foundation.Date", - "usr": "s:10Foundation4DateV" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "SentryANRType", + "printedName": "Sentry.SentryANRType", + "usr": "c:@M@Sentry@E@SentryANRType" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)date", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC4date10Foundation0D0VyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate(im)anrDetectedWithType:", + "mangledName": "$s6Sentry0A18ANRTrackerDelegateP11anrDetected4typeyAA0A7ANRTypeO_tF", "moduleName": "Sentry", - "objc_name": "date", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTrackerDelegate>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "ObjC", - "AccessControl" + "ObjC" ], "spi_group_names": [ "Private" ], + "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "timezoneOffset", - "printedName": "timezoneOffset()", + "name": "anrStopped", + "printedName": "anrStopped(result:)", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.SentryANRStoppedResult?", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryANRStoppedResult", + "printedName": "Sentry.SentryANRStoppedResult", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" + } + ], + "usr": "s:Sq" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)timezoneOffset", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC14timezoneOffsetSiyF", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate(im)anrStoppedWithResult:", + "mangledName": "$s6Sentry0A18ANRTrackerDelegateP10anrStopped6resultyAA0A16ANRStoppedResultCSg_tF", "moduleName": "Sentry", - "objc_name": "timezoneOffset", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTrackerDelegate>", + "sugared_genericSig": "", + "protocolReq": true, "declAttributes": [ - "ObjC", - "AccessControl" + "ObjC" ], "spi_group_names": [ "Private" ], + "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" - }, + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate", + "mangledName": "$s6Sentry0A18ANRTrackerDelegateP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjC", + "RawDocComment" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "TypeDecl", + "name": "SentryANRStoppedResult", + "printedName": "SentryANRStoppedResult", + "children": [ { - "kind": "Function", - "name": "systemTime", - "printedName": "systemTime()", + "kind": "Var", + "name": "minDuration", + "printedName": "minDuration", "children": [ { "kind": "TypeNominal", - "name": "UInt64", - "printedName": "Swift.UInt64", - "usr": "s:s6UInt64V" + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)systemTime", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC10systemTimes6UInt64VyF", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(py)minDuration", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDurationSdvp", "moduleName": "Sentry", - "objc_name": "systemTime", "declAttributes": [ - "ObjC", + "Final", + "HasStorage", "AccessControl", - "RawDocComment" + "ObjC" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)minDuration", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] }, { - "kind": "Function", - "name": "systemUptime", - "printedName": "systemUptime()", + "kind": "Var", + "name": "maxDuration", + "printedName": "maxDuration", "children": [ { "kind": "TypeNominal", @@ -9664,46 +15347,86 @@ "usr": "s:Sd" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)systemUptime", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC12systemUptimeSdyF", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(py)maxDuration", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11maxDurationSdvp", "moduleName": "Sentry", - "objc_name": "systemUptime", "declAttributes": [ - "ObjC", - "AccessControl" + "Final", + "HasStorage", + "AccessControl", + "ObjC" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)maxDuration", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11maxDurationSdvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] }, { - "kind": "Function", - "name": "getAbsoluteTime", - "printedName": "getAbsoluteTime()", + "kind": "Constructor", + "name": "init", + "printedName": "init(minDuration:maxDuration:)", "children": [ { "kind": "TypeNominal", - "name": "UInt64", - "printedName": "Swift.UInt64", - "usr": "s:s6UInt64V" + "name": "SentryANRStoppedResult", + "printedName": "Sentry.SentryANRStoppedResult", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" } ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(cm)getAbsoluteTime", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC15getAbsoluteTimes6UInt64VyFZ", + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)initWithMinDuration:maxDuration:", + "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDuration03maxE0ACSd_Sdtcfc", "moduleName": "Sentry", - "static": true, "declAttributes": [ - "Final", "AccessControl", "ObjC" ], "spi_group_names": [ "Private" ], - "funcSelfKind": "NonMutating" + "init_kind": "Designated" }, { "kind": "Constructor", @@ -9712,14 +15435,14 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryDefaultCurrentDateProvider", - "printedName": "Sentry.SentryDefaultCurrentDateProvider", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider" + "name": "SentryANRStoppedResult", + "printedName": "Sentry.SentryANRStoppedResult", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider(im)init", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderCACycfc", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)init", + "mangledName": "$s6Sentry0A16ANRStoppedResultCACycfc", "moduleName": "Sentry", "overriding": true, "implicit": true, @@ -9736,8 +15459,8 @@ } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider", - "mangledName": "$s6Sentry0A26DefaultCurrentDateProviderC", + "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult", + "mangledName": "$s6Sentry0A16ANRStoppedResultC", "moduleName": "Sentry", "declAttributes": [ "AccessControl", @@ -9749,18 +15472,10 @@ "Private" ], "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], "conformances": [ - { - "kind": "Conformance", - "name": "SentryCurrentDateProvider", - "printedName": "SentryCurrentDateProvider", - "usr": "c:@M@Sentry@objc(pl)SentryCurrentDateProvider", - "mangledName": "$s6Sentry0A19CurrentDateProviderP" - }, { "kind": "Conformance", "name": "Equatable", @@ -9814,73 +15529,15 @@ }, { "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryViewRenderer", - "printedName": "SentryViewRenderer", - "children": [ - { - "kind": "Function", - "name": "render", - "printedName": "render(view:)", - "children": [ - { - "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" - }, - { - "kind": "TypeNominal", - "name": "UIView", - "printedName": "UIKit.UIView", - "usr": "c:objc(cs)UIView" - } - ], - "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer(im)renderWithView:", - "mangledName": "$s6Sentry0A12ViewRendererP6render4viewSo7UIImageCSo6UIViewC_tF", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryViewRenderer>", - "sugared_genericSig": "", - "protocolReq": true, - "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "reqNewWitnessTableEntry": true, - "funcSelfKind": "NonMutating" - } - ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer", - "mangledName": "$s6Sentry0A12ViewRendererP", "moduleName": "Sentry", - "genericSig": "<τ_0_0 : AnyObject>", - "sugared_genericSig": "", "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ImplementationOnly", + "RawDocComment" ] }, - { - "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", - "declKind": "Import", - "moduleName": "Sentry" - }, { "kind": "Import", "name": "Foundation", @@ -9890,338 +15547,97 @@ }, { "kind": "TypeDecl", - "name": "SentryProfileOptions", - "printedName": "SentryProfileOptions", + "name": "SentrySDK", + "printedName": "SentrySDK", "children": [ { - "kind": "TypeDecl", - "name": "SentryProfileLifecycle", - "printedName": "SentryProfileLifecycle", + "kind": "Var", + "name": "span", + "printedName": "span", "children": [ { - "kind": "Var", - "name": "manual", - "printedName": "manual", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryProfileOptions.SentryProfileLifecycle.Type) -> Sentry.SentryProfileOptions.SentryProfileLifecycle", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO6manualyA2EmF", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO6manualyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 0 - }, - { - "kind": "Var", - "name": "trace", - "printedName": "trace", - "children": [ - { - "kind": "TypeFunc", - "name": "Function", - "printedName": "(Sentry.SentryProfileOptions.SentryProfileLifecycle.Type) -> Sentry.SentryProfileOptions.SentryProfileLifecycle", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - }, - { - "kind": "TypeNominal", - "name": "Metatype", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle.Type", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ] - } - ] - } - ], - "declKind": "EnumElement", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO5traceyA2EmF", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO5traceyA2EmF", - "moduleName": "Sentry", - "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "fixedbinaryorder": 1 - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init(rawValue:)", - "children": [ - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle?", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ], - "usr": "s:Sq" - }, - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ], - "declKind": "Constructor", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueAESgSi_tcfc", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueAESgSi_tcfc", - "moduleName": "Sentry", - "implicit": true, - "init_kind": "Designated" - }, - { - "kind": "Var", - "name": "rawValue", - "printedName": "rawValue", + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Sentry.Span?", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" } ], - "declKind": "Var", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivp", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivp", - "moduleName": "Sentry", - "implicit": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivg", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO8rawValueSivg", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "get" - } - ] + "usr": "s:Sq" } ], - "declKind": "Enum", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO", - "mangledName": "$s6Sentry0A14ProfileOptionsC0aB9LifecycleO", + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)span", + "mangledName": "$s6Sentry0A3SDKC4spanSo0A4Span_pSgvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ + "Final", "AccessControl", "ObjC", "RawDocComment" - ], - "enumRawTypeName": "Int", - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "RawRepresentable", - "printedName": "RawRepresentable", - "children": [ - { - "kind": "TypeWitness", - "name": "RawValue", - "printedName": "RawValue", - "children": [ - { - "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" - } - ] - } - ], - "usr": "s:SY", - "mangledName": "$sSY" - } - ] - }, - { - "kind": "Var", - "name": "lifecycle", - "printedName": "lifecycle", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)lifecycle", - "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvp", - "moduleName": "Sentry", - "declAttributes": [ - "HasInitialValue", - "HasStorage", - "AccessControl", - "RawDocComment", - "ObjC" - ], - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)lifecycle", - "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "get" - }, - { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryProfileLifecycle", - "printedName": "Sentry.SentryProfileOptions.SentryProfileLifecycle", - "usr": "s:6Sentry0A14ProfileOptionsC0aB9LifecycleO" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setLifecycle:", - "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" - }, + ], + "accessors": [ { "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" + "name": "Optional", + "printedName": "Sentry.Span?", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + } + ], + "usr": "s:Sq" } ], "declKind": "Accessor", - "usr": "s:6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvM", - "mangledName": "$s6Sentry0A14ProfileOptionsC9lifecycleAC0aB9LifecycleOvM", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)span", + "mangledName": "$s6Sentry0A3SDKC4spanSo0A4Span_pSgvgZ", "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "static": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "sessionSampleRate", - "printedName": "sessionSampleRate", + "name": "isEnabled", + "printedName": "isEnabled", "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)sessionSampleRate", - "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)isEnabled", + "mangledName": "$s6Sentry0A3SDKC9isEnabledSbvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ - "HasInitialValue", - "HasStorage", + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -10230,92 +15646,96 @@ "children": [ { "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)sessionSampleRate", - "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)isEnabled", + "mangledName": "$s6Sentry0A3SDKC9isEnabledSbvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ + "Final", "ObjC" ], "accessorKind": "get" - }, + } + ] + }, + { + "kind": "Var", + "name": "replay", + "printedName": "replay", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryReplayApi", + "printedName": "Sentry.SentryReplayApi", + "usr": "c:objc(cs)SentryReplayApi" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)replay", + "mangledName": "$s6Sentry0A3SDKC6replaySo0A9ReplayApiCvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "accessors": [ { "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "name": "Get", + "printedName": "Get()", "children": [ { "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Float", - "printedName": "Swift.Float", - "usr": "s:Sf" + "name": "SentryReplayApi", + "printedName": "Sentry.SentryReplayApi", + "usr": "c:objc(cs)SentryReplayApi" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setSessionSampleRate:", - "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvs", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)replay", + "mangledName": "$s6Sentry0A3SDKC6replaySo0A9ReplayApiCvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ + "Final", "ObjC" ], - "accessorKind": "set" - }, - { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", - "children": [ - { - "kind": "TypeNominal", - "name": "Void", - "printedName": "()" - } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A14ProfileOptionsC17sessionSampleRateSfvM", - "mangledName": "$s6Sentry0A14ProfileOptionsC17sessionSampleRateSfvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + "accessorKind": "get" } ] }, { "kind": "Var", - "name": "profileAppStarts", - "printedName": "profileAppStarts", + "name": "logger", + "printedName": "logger", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "SentryLogger", + "printedName": "Sentry.SentryLogger", + "usr": "c:@M@Sentry@objc(cs)SentryLogger" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(py)profileAppStarts", - "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)logger", + "mangledName": "$s6Sentry0A3SDKC6loggerAA0A6LoggerCvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ - "HasInitialValue", - "HasStorage", + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "ObjC", + "RawDocComment" ], - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -10324,25 +15744,69 @@ "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "SentryLogger", + "printedName": "Sentry.SentryLogger", + "usr": "c:@M@Sentry@objc(cs)SentryLogger" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)profileAppStarts", - "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)logger", + "mangledName": "$s6Sentry0A3SDKC6loggerAA0A6LoggerCvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ + "Final", "ObjC" ], "accessorKind": "get" + } + ] + }, + { + "kind": "Function", + "name": "start", + "printedName": "start(options:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" }, { - "kind": "Accessor", - "name": "Set", - "printedName": "Set()", + "kind": "TypeNominal", + "name": "Options", + "printedName": "Sentry.Options", + "usr": "c:objc(cs)SentryOptions" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startWithOptions:", + "mangledName": "$s6Sentry0A3SDKC5start7optionsySo0A7OptionsC_tFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startWithOptions:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "start", + "printedName": "start(configureOptions:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Options) -> ()", "children": [ { "kind": "TypeNominal", @@ -10351,156 +15815,333 @@ }, { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Options", + "printedName": "Sentry.Options", + "usr": "c:objc(cs)SentryOptions" } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)setProfileAppStarts:", - "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvs", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "ObjC" - ], - "accessorKind": "set" + ] + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startWithConfigureOptions:", + "mangledName": "$s6Sentry0A3SDKC5start16configureOptionsyySo0aE0Cc_tFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startWithConfigureOptions:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "capture", + "printedName": "capture(event:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" }, { - "kind": "Accessor", - "name": "Modify", - "printedName": "Modify()", + "kind": "TypeNominal", + "name": "Event", + "printedName": "Sentry.Event", + "usr": "c:objc(cs)SentryEvent" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureEvent:", + "mangledName": "$s6Sentry0A3SDKC7capture5eventAA0A2IdCSo0A5EventC_tFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureEvent:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "capture", + "printedName": "capture(event:scope:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "Event", + "printedName": "Sentry.Event", + "usr": "c:objc(cs)SentryEvent" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureEvent:withScope:", + "mangledName": "$s6Sentry0A3SDKC7capture5event5scopeAA0A2IdCSo0A5EventC_So0A5ScopeCtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureEvent:withScope:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "capture", + "printedName": "capture(event:block:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "Event", + "printedName": "Sentry.Event", + "usr": "c:objc(cs)SentryEvent" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } - ], - "declKind": "Accessor", - "usr": "s:6Sentry0A14ProfileOptionsC16profileAppStartsSbvM", - "mangledName": "$s6Sentry0A14ProfileOptionsC16profileAppStartsSbvM", - "moduleName": "Sentry", - "implicit": true, - "accessorKind": "_modify" + ] } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureEvent:withScopeBlock:", + "mangledName": "$s6Sentry0A3SDKC7capture5event5blockAA0A2IdCSo0A5EventC_ySo0A5ScopeCctFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureEvent:withScopeBlock:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(name:operation:)", "children": [ { "kind": "TypeNominal", - "name": "SentryProfileOptions", - "printedName": "Sentry.SentryProfileOptions", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions" + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions(im)init", - "mangledName": "$s6Sentry0A14ProfileOptionsCACycfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithName:operation:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction4name9operationSo0A4Span_pSS_SStFZ", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", + "static": true, + "objc_name": "startTransactionWithName:operation:", "declAttributes": [ - "Dynamic", + "Final", + "AccessControl", + "DiscardableResult", "ObjC", - "Override" + "RawDocComment" ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryProfileOptions", - "mangledName": "$s6Sentry0A14ProfileOptionsC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "ObjCMembers", - "RawDocComment", - "ObjC" - ], - "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(name:operation:bindToScope:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithName:operation:bindToScope:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction4name9operation11bindToScopeSo0A4Span_pSS_SSSbtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startTransactionWithName:operation:bindToScope:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(transactionContext:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "TransactionContext", + "printedName": "Sentry.TransactionContext", + "usr": "c:objc(cs)SentryTransactionContext" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithContext:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction18transactionContextSo0A4Span_pSo0adF0C_tFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startTransactionWithContext:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(transactionContext:bindToScope:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "TransactionContext", + "printedName": "Sentry.TransactionContext", + "usr": "c:objc(cs)SentryTransactionContext" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithContext:bindToScope:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction18transactionContext11bindToScopeSo0A4Span_pSo0adF0C_SbtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startTransactionWithContext:bindToScope:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, - { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "HTTPHeaderSanitizer", - "printedName": "HTTPHeaderSanitizer", - "children": [ { "kind": "Function", - "name": "sanitizeHeaders", - "printedName": "sanitizeHeaders(_:)", + "name": "startTransaction", + "printedName": "startTransaction(transactionContext:bindToScope:customSamplingContext:)", "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "TransactionContext", + "printedName": "Sentry.TransactionContext", + "usr": "c:objc(cs)SentryTransactionContext" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + }, { "kind": "TypeNominal", "name": "Dictionary", - "printedName": "[Swift.String : Swift.String]", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", @@ -10510,17 +16151,49 @@ }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "ProtocolComposition", + "printedName": "Any" } ], "usr": "s:SD" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithContext:bindToScope:customSamplingContext:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction18transactionContext11bindToScope014customSamplingF0So0A4Span_pSo0adF0C_SbSDySSypGtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "startTransactionWithContext:bindToScope:customSamplingContext:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "startTransaction", + "printedName": "startTransaction(transactionContext:customSamplingContext:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Span", + "printedName": "Sentry.Span", + "usr": "c:objc(pl)SentrySpan" + }, + { + "kind": "TypeNominal", + "name": "TransactionContext", + "printedName": "Sentry.TransactionContext", + "usr": "c:objc(cs)SentryTransactionContext" }, { "kind": "TypeNominal", "name": "Dictionary", - "printedName": "[Swift.String : Swift.String]", + "printedName": "[Swift.String : Any]", "children": [ { "kind": "TypeNominal", @@ -10530,381 +16203,285 @@ }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "ProtocolComposition", + "printedName": "Any" } ], "usr": "s:SD" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer(cm)sanitizeHeaders:", - "mangledName": "$s6Sentry19HTTPHeaderSanitizerC15sanitizeHeadersySDyS2SGAEFZ", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startTransactionWithContext:customSamplingContext:", + "mangledName": "$s6Sentry0A3SDKC16startTransaction18transactionContext014customSamplingF0So0A4Span_pSo0adF0C_SDySSypGtFZ", "moduleName": "Sentry", "static": true, + "objc_name": "startTransactionWithContext:customSamplingContext:", "declAttributes": [ "Final", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "DiscardableResult", + "ObjC", + "RawDocComment" ], "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "capture", + "printedName": "capture(error:)", "children": [ { "kind": "TypeNominal", - "name": "HTTPHeaderSanitizer", - "printedName": "Sentry.HTTPHeaderSanitizer", - "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer(im)init", - "mangledName": "$s6Sentry19HTTPHeaderSanitizerCACycfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureError:", + "mangledName": "$s6Sentry0A3SDKC7capture5errorAA0A2IdCs5Error_p_tFZ", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", + "static": true, + "objc_name": "captureError:", "declAttributes": [ - "Dynamic", + "Final", + "AccessControl", + "DiscardableResult", "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" + "RawDocComment" ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)HTTPHeaderSanitizer", - "mangledName": "$s6Sentry19HTTPHeaderSanitizerC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "UIKit", - "printedName": "UIKit", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryViewRendererV2", - "printedName": "SentryViewRendererV2", - "children": [ - { - "kind": "Constructor", - "name": "init", - "printedName": "init(enableFastViewRendering:)", + "kind": "Function", + "name": "capture", + "printedName": "capture(error:scope:)", "children": [ { "kind": "TypeNominal", - "name": "SentryViewRendererV2", - "printedName": "Sentry.SentryViewRendererV2", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" }, { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)initWithEnableFastViewRendering:", - "mangledName": "$s6Sentry0A14ViewRendererV2C010enableFastB9RenderingACSb_tcfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureError:withScope:", + "mangledName": "$s6Sentry0A3SDKC7capture5error5scopeAA0A2IdCs5Error_p_So0A5ScopeCtFZ", "moduleName": "Sentry", + "static": true, + "objc_name": "captureError:withScope:", "declAttributes": [ + "Final", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "DiscardableResult", + "ObjC", + "RawDocComment" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "render", - "printedName": "render(view:)", + "name": "capture", + "printedName": "capture(error:block:)", "children": [ { "kind": "TypeNominal", - "name": "UIImage", - "printedName": "UIKit.UIImage", - "usr": "c:objc(cs)UIImage" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" }, { "kind": "TypeNominal", - "name": "UIView", - "printedName": "UIKit.UIView", - "usr": "c:objc(cs)UIView" + "name": "Error", + "printedName": "Swift.Error", + "usr": "s:s5ErrorP" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" + } + ] } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)renderWithView:", - "mangledName": "$s6Sentry0A14ViewRendererV2C6render4viewSo7UIImageCSo6UIViewC_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureError:withScopeBlock:", + "mangledName": "$s6Sentry0A3SDKC7capture5error5blockAA0A2IdCs5Error_p_ySo0A5ScopeCctFZ", "moduleName": "Sentry", - "objc_name": "renderWithView:", + "static": true, + "objc_name": "captureError:withScopeBlock:", "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", "ObjC", - "AccessControl" - ], - "spi_group_names": [ - "Private" + "RawDocComment" ], "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "capture", + "printedName": "capture(exception:)", "children": [ { "kind": "TypeNominal", - "name": "SentryViewRendererV2", - "printedName": "Sentry.SentryViewRendererV2", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2" + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "NSException", + "printedName": "Foundation.NSException", + "usr": "c:objc(cs)NSException" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2(im)init", - "mangledName": "$s6Sentry0A14ViewRendererV2CACycfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureException:", + "mangledName": "$s6Sentry0A3SDKC7capture9exceptionAA0A2IdCSo11NSExceptionC_tFZ", "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", + "static": true, + "objc_name": "captureException:", "declAttributes": [ - "Dynamic", + "Final", + "AccessControl", + "DiscardableResult", "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" + "RawDocComment" ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryViewRendererV2", - "mangledName": "$s6Sentry0A14ViewRendererV2C", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "SentryViewRenderer", - "printedName": "SentryViewRenderer", - "usr": "c:@M@Sentry@objc(pl)SentryViewRenderer", - "mangledName": "$s6Sentry0A12ViewRendererP" - }, - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + "funcSelfKind": "NonMutating" }, { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryId", - "printedName": "SentryId", - "children": [ - { - "kind": "Var", - "name": "empty", - "printedName": "empty", + "kind": "Function", + "name": "capture", + "printedName": "capture(exception:scope:)", "children": [ { "kind": "TypeNominal", "name": "SentryId", "printedName": "Sentry.SentryId", "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "NSException", + "printedName": "Foundation.NSException", + "usr": "c:objc(cs)NSException" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryId(cpy)empty", - "mangledName": "$s6Sentry0A2IdC5emptyACvpZ", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureException:withScope:", + "mangledName": "$s6Sentry0A3SDKC7capture9exception5scopeAA0A2IdCSo11NSExceptionC_So0A5ScopeCtFZ", "moduleName": "Sentry", "static": true, + "objc_name": "captureException:withScope:", "declAttributes": [ - "HasInitialValue", "Final", - "HasStorage", "AccessControl", - "RawDocComment", - "ObjC" + "DiscardableResult", + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "capture", + "printedName": "capture(exception:block:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "NSException", + "printedName": "Foundation.NSException", + "usr": "c:objc(cs)NSException" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", "children": [ { "kind": "TypeNominal", - "name": "SentryId", - "printedName": "Sentry.SentryId", - "usr": "c:@M@Sentry@objc(cs)SentryId" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryId(cm)empty", - "mangledName": "$s6Sentry0A2IdC5emptyACvgZ", - "moduleName": "Sentry", - "static": true, - "implicit": true, - "declAttributes": [ - "Final", - "ObjC" - ], - "accessorKind": "get" + ] } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureException:withScopeBlock:", + "mangledName": "$s6Sentry0A3SDKC7capture9exception5blockAA0A2IdCSo11NSExceptionC_ySo0A5ScopeCctFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureException:withScopeBlock:", + "declAttributes": [ + "Final", + "AccessControl", + "DiscardableResult", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "sentryIdString", - "printedName": "sentryIdString", + "kind": "Function", + "name": "capture", + "printedName": "capture(message:)", "children": [ + { + "kind": "TypeNominal", + "name": "SentryId", + "printedName": "Sentry.SentryId", + "usr": "c:@M@Sentry@objc(cs)SentryId" + }, { "kind": "TypeNominal", "name": "String", @@ -10912,72 +16489,64 @@ "usr": "s:SS" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryId(py)sentryIdString", - "mangledName": "$s6Sentry0A2IdC06sentryB6StringSSvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureMessage:", + "mangledName": "$s6Sentry0A3SDKC7capture7messageAA0A2IdCSS_tFZ", "moduleName": "Sentry", + "static": true, + "objc_name": "captureMessage:", "declAttributes": [ "Final", "AccessControl", - "RawDocComment", - "ObjC" + "DiscardableResult", + "ObjC", + "RawDocComment" ], - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)sentryIdString", - "mangledName": "$s6Sentry0A2IdC06sentryB6StringSSvg", - "moduleName": "Sentry", - "declAttributes": [ - "Final", - "ObjC" - ], - "accessorKind": "get" - } - ] + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init()", + "kind": "Function", + "name": "capture", + "printedName": "capture(message:scope:)", "children": [ { "kind": "TypeNominal", "name": "SentryId", "printedName": "Sentry.SentryId", "usr": "c:@M@Sentry@objc(cs)SentryId" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)init", - "mangledName": "$s6Sentry0A2IdCACycfc", - "moduleName": "Sentry", - "overriding": true, - "objc_name": "init", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureMessage:withScope:", + "mangledName": "$s6Sentry0A3SDKC7capture7message5scopeAA0A2IdCSS_So0A5ScopeCtFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "captureMessage:withScope:", "declAttributes": [ - "Dynamic", - "ObjC", - "Override", + "Final", "AccessControl", + "DiscardableResult", + "ObjC", "RawDocComment" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init(uuid:)", + "kind": "Function", + "name": "capture", + "printedName": "capture(message:block:)", "children": [ { "kind": "TypeNominal", @@ -10987,115 +16556,136 @@ }, { "kind": "TypeNominal", - "name": "UUID", - "printedName": "Foundation.UUID", - "usr": "s:10Foundation4UUIDV" + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" + } + ] } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)initWithUuid:", - "mangledName": "$s6Sentry0A2IdC4uuidAC10Foundation4UUIDV_tcfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureMessage:withScopeBlock:", + "mangledName": "$s6Sentry0A3SDKC7capture7message5blockAA0A2IdCSS_ySo0A5ScopeCctFZ", "moduleName": "Sentry", + "static": true, + "objc_name": "captureMessage:withScopeBlock:", "declAttributes": [ + "Final", "AccessControl", - "RawDocComment", - "ObjC" + "DiscardableResult", + "ObjC", + "RawDocComment" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init(uuidString:)", + "kind": "Function", + "name": "capture", + "printedName": "capture(userFeedback:)", "children": [ { "kind": "TypeNominal", - "name": "SentryId", - "printedName": "Sentry.SentryId", - "usr": "c:@M@Sentry@objc(cs)SentryId" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "UserFeedback", + "printedName": "Sentry.UserFeedback", + "usr": "c:@M@Sentry@objc(cs)SentryUserFeedback" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)initWithUUIDString:", - "mangledName": "$s6Sentry0A2IdC10uuidStringACSS_tcfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureUserFeedback:", + "mangledName": "$s6Sentry0A3SDKC7capture12userFeedbackyAA04UserE0C_tFZ", "moduleName": "Sentry", - "objc_name": "initWithUUIDString:", + "static": true, + "deprecated": true, + "objc_name": "captureUserFeedback:", "declAttributes": [ + "Final", "AccessControl", "ObjC", + "Available", "RawDocComment" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "isEqual", - "printedName": "isEqual(_:)", + "name": "capture", + "printedName": "capture(feedback:)", "children": [ { "kind": "TypeNominal", - "name": "Bool", - "printedName": "Swift.Bool", - "usr": "s:Sb" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", - "name": "Optional", - "printedName": "Any?", - "children": [ - { - "kind": "TypeNominal", - "name": "ProtocolComposition", - "printedName": "Any" - } - ], - "usr": "s:Sq" + "name": "SentryFeedback", + "printedName": "Sentry.SentryFeedback", + "usr": "c:@M@Sentry@objc(cs)SentryFeedback" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)isEqual:", - "mangledName": "$s6Sentry0A2IdC7isEqualySbypSgF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)captureFeedback:", + "mangledName": "$s6Sentry0A3SDKC7capture8feedbackyAA0A8FeedbackC_tFZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "isEqual:", + "static": true, + "objc_name": "captureFeedback:", "declAttributes": [ "Final", - "ObjC", "AccessControl", - "Override" + "ObjC", + "RawDocComment" ], "funcSelfKind": "NonMutating" }, { "kind": "Var", - "name": "description", - "printedName": "description", + "name": "feedback", + "printedName": "feedback", "children": [ { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "SentryFeedbackAPI", + "printedName": "Sentry.SentryFeedbackAPI", + "usr": "c:objc(cs)SentryFeedbackAPI" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryId(py)description", - "mangledName": "$s6Sentry0A2IdC11descriptionSSvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)feedback", + "mangledName": "$s6Sentry0A3SDKC8feedbackSo0A11FeedbackAPICvpZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "description", + "static": true, + "intro_iOS": "13.0", "declAttributes": [ + "HasInitialValue", "Final", - "ObjC", + "HasStorage", "AccessControl", - "Override" + "ObjC", + "Available" ], + "isLet": true, + "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -11104,17 +16694,17 @@ "children": [ { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "SentryFeedbackAPI", + "printedName": "Sentry.SentryFeedbackAPI", + "usr": "c:objc(cs)SentryFeedbackAPI" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)description", - "mangledName": "$s6Sentry0A2IdC11descriptionSSvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)feedback", + "mangledName": "$s6Sentry0A3SDKC8feedbackSo0A11FeedbackAPICvgZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "description", + "static": true, + "implicit": true, "declAttributes": [ "Final", "ObjC" @@ -11124,171 +16714,102 @@ ] }, { - "kind": "Var", - "name": "hash", - "printedName": "hash", + "kind": "Function", + "name": "addBreadcrumb", + "printedName": "addBreadcrumb(_:)", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Breadcrumb", + "printedName": "Sentry.Breadcrumb", + "usr": "c:objc(cs)SentryBreadcrumb" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryId(py)hash", - "mangledName": "$s6Sentry0A2IdC4hashSivp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)addBreadcrumb:", + "mangledName": "$s6Sentry0A3SDKC13addBreadcrumbyySo0aD0CFZ", "moduleName": "Sentry", - "overriding": true, - "objc_name": "hash", + "static": true, + "objc_name": "addBreadcrumb:", "declAttributes": [ "Final", - "ObjC", "AccessControl", - "Override" + "ObjC", + "RawDocComment" ], - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "configureScope", + "printedName": "configureScope(_:)", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Sentry.Scope) -> ()", "children": [ { "kind": "TypeNominal", - "name": "Int", - "printedName": "Swift.Int", - "usr": "s:Si" + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Scope", + "printedName": "Sentry.Scope", + "usr": "c:objc(cs)SentryScope" } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryId(im)hash", - "mangledName": "$s6Sentry0A2IdC4hashSivg", - "moduleName": "Sentry", - "overriding": true, - "objc_name": "hash", - "declAttributes": [ - "Final", - "ObjC" - ], - "accessorKind": "get" + ] } - ] - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryId", - "mangledName": "$s6Sentry0A2IdC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "Final", - "ObjCMembers", - "ObjC" - ], - "superclassUsr": "c:objc(cs)NSObject", - "inheritsConvenienceInitializers": true, - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Sendable", - "printedName": "Sendable", - "usr": "s:s8SendableP", - "mangledName": "$ss8SendableP" - }, - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)configureScope:", + "mangledName": "$s6Sentry0A3SDKC14configureScopeyyySo0aD0CcFZ", + "moduleName": "Sentry", + "static": true, + "objc_name": "configureScope:", + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, - { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryFramesDelayResult", - "printedName": "SentryFramesDelayResult", - "children": [ { "kind": "Var", - "name": "delayDuration", - "printedName": "delayDuration", + "name": "crashedLastRun", + "printedName": "crashedLastRun", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(py)delayDuration", - "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDurationSdvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)crashedLastRun", + "mangledName": "$s6Sentry0A3SDKC14crashedLastRunSbvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ "Final", - "HasStorage", "AccessControl", - "RawDocComment", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -11297,54 +16818,47 @@ "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)delayDuration", - "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDurationSdvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)crashedLastRun", + "mangledName": "$s6Sentry0A3SDKC14crashedLastRunSbvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ "Final", "ObjC" ], - "spi_group_names": [ - "Private" - ], "accessorKind": "get" } ] }, { "kind": "Var", - "name": "framesContributingToDelayCount", - "printedName": "framesContributingToDelayCount", + "name": "detectedStartUpCrash", + "printedName": "detectedStartUpCrash", "children": [ { "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(py)framesContributingToDelayCount", - "mangledName": "$s6Sentry0A17FramesDelayResultC020framesContributingToC5CountSuvp", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cpy)detectedStartUpCrash", + "mangledName": "$s6Sentry0A3SDKC20detectedStartUpCrashSbvpZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ "Final", - "HasStorage", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, "accessors": [ { "kind": "Accessor", @@ -11353,247 +16867,114 @@ "children": [ { "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)framesContributingToDelayCount", - "mangledName": "$s6Sentry0A17FramesDelayResultC020framesContributingToC5CountSuvg", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)detectedStartUpCrash", + "mangledName": "$s6Sentry0A3SDKC20detectedStartUpCrashSbvgZ", "moduleName": "Sentry", - "implicit": true, + "static": true, "declAttributes": [ "Final", "ObjC" ], - "spi_group_names": [ - "Private" - ], "accessorKind": "get" } ] }, { - "kind": "Constructor", - "name": "init", - "printedName": "init(delayDuration:framesContributingToDelayCount:)", + "kind": "Function", + "name": "setUser", + "printedName": "setUser(_:)", "children": [ { "kind": "TypeNominal", - "name": "SentryFramesDelayResult", - "printedName": "Sentry.SentryFramesDelayResult", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult" - }, - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" }, { "kind": "TypeNominal", - "name": "UInt", - "printedName": "Swift.UInt", - "usr": "s:Su" - } - ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)initWithDelayDuration:framesContributingToDelayCount:", - "mangledName": "$s6Sentry0A17FramesDelayResultC13delayDuration020framesContributingToC5CountACSd_Sutcfc", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Designated" - }, - { - "kind": "Constructor", - "name": "init", - "printedName": "init()", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryFramesDelayResult", - "printedName": "Sentry.SentryFramesDelayResult", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult" - } - ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult(im)init", - "mangledName": "$s6Sentry0A17FramesDelayResultCACycfc", - "moduleName": "Sentry", - "overriding": true, - "implicit": true, - "objc_name": "init", - "declAttributes": [ - "Dynamic", - "ObjC", - "Override" - ], - "spi_group_names": [ - "Private" - ], - "init_kind": "Designated" - } - ], - "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryFramesDelayResult", - "mangledName": "$s6Sentry0A17FramesDelayResultC", - "moduleName": "Sentry", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "superclassUsr": "c:objc(cs)NSObject", - "superclassNames": [ - "ObjectiveC.NSObject" - ], - "conformances": [ - { - "kind": "Conformance", - "name": "Equatable", - "printedName": "Equatable", - "usr": "s:SQ", - "mangledName": "$sSQ" - }, - { - "kind": "Conformance", - "name": "Hashable", - "printedName": "Hashable", - "usr": "s:SH", - "mangledName": "$sSH" - }, - { - "kind": "Conformance", - "name": "CVarArg", - "printedName": "CVarArg", - "usr": "s:s7CVarArgP", - "mangledName": "$ss7CVarArgP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObservingPublishing", - "printedName": "_KeyValueCodingAndObservingPublishing", - "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", - "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" - }, - { - "kind": "Conformance", - "name": "_KeyValueCodingAndObserving", - "printedName": "_KeyValueCodingAndObserving", - "usr": "s:10Foundation27_KeyValueCodingAndObservingP", - "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" - }, - { - "kind": "Conformance", - "name": "CustomStringConvertible", - "printedName": "CustomStringConvertible", - "usr": "s:s23CustomStringConvertibleP", - "mangledName": "$ss23CustomStringConvertibleP" - }, - { - "kind": "Conformance", - "name": "CustomDebugStringConvertible", - "printedName": "CustomDebugStringConvertible", - "usr": "s:s28CustomDebugStringConvertibleP", - "mangledName": "$ss28CustomDebugStringConvertibleP" - } - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryANRTracker", - "printedName": "SentryANRTracker", - "children": [ + "name": "Optional", + "printedName": "Sentry.User?", + "children": [ + { + "kind": "TypeNominal", + "name": "User", + "printedName": "Sentry.User", + "usr": "c:objc(cs)SentryUser" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)setUser:", + "mangledName": "$s6Sentry0A3SDKC7setUseryySo0aD0CSgFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, { "kind": "Function", - "name": "add", - "printedName": "add(listener:)", + "name": "startSession", + "printedName": "startSession()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryANRTrackerDelegate", - "printedName": "Sentry.SentryANRTrackerDelegate", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)addListener:", - "mangledName": "$s6Sentry0A10ANRTrackerP3add8listeneryAA0aB8Delegate_p_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startSession", + "mangledName": "$s6Sentry0A3SDKC12startSessionyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", - "sugared_genericSig": "", - "protocolReq": true, - "objc_name": "addListener:", + "static": true, "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "remove", - "printedName": "remove(listener:)", + "name": "endSession", + "printedName": "endSession()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryANRTrackerDelegate", - "printedName": "Sentry.SentryANRTrackerDelegate", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)removeListener:", - "mangledName": "$s6Sentry0A10ANRTrackerP6remove8listeneryAA0aB8Delegate_p_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)endSession", + "mangledName": "$s6Sentry0A3SDKC10endSessionyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", - "sugared_genericSig": "", - "protocolReq": true, - "objc_name": "removeListener:", + "static": true, "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "clear", - "printedName": "clear()", + "name": "crash", + "printedName": "crash()", "children": [ { "kind": "TypeNominal", @@ -11602,207 +16983,100 @@ } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTracker(im)clear", - "mangledName": "$s6Sentry0A10ANRTrackerP5clearyyF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)crash", + "mangledName": "$s6Sentry0A3SDKC5crashyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTracker>", - "sugared_genericSig": "", - "protocolReq": true, + "static": true, "declAttributes": [ - "RawDocComment", - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" - } - ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryANRTracker", - "mangledName": "$s6Sentry0A10ANRTrackerP", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 : AnyObject>", - "sugared_genericSig": "", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" - ] - }, - { - "kind": "Import", - "name": "Foundation", - "printedName": "Foundation", - "declKind": "Import", - "moduleName": "Sentry" - }, - { - "kind": "TypeDecl", - "name": "SentryANRTrackerDelegate", - "printedName": "SentryANRTrackerDelegate", - "children": [ + }, { "kind": "Function", - "name": "anrDetected", - "printedName": "anrDetected(type:)", + "name": "reportFullyDisplayed", + "printedName": "reportFullyDisplayed()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "SentryANRType", - "printedName": "Sentry.SentryANRType", - "usr": "c:@M@Sentry@E@SentryANRType" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate(im)anrDetectedWithType:", - "mangledName": "$s6Sentry0A18ANRTrackerDelegateP11anrDetected4typeyAA0A7ANRTypeO_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)reportFullyDisplayed", + "mangledName": "$s6Sentry0A3SDKC20reportFullyDisplayedyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTrackerDelegate>", - "sugared_genericSig": "", - "protocolReq": true, + "static": true, "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" }, { "kind": "Function", - "name": "anrStopped", - "printedName": "anrStopped(result:)", + "name": "pauseAppHangTracking", + "printedName": "pauseAppHangTracking()", "children": [ { "kind": "TypeNominal", "name": "Void", "printedName": "()" - }, - { - "kind": "TypeNominal", - "name": "Optional", - "printedName": "Sentry.SentryANRStoppedResult?", - "children": [ - { - "kind": "TypeNominal", - "name": "SentryANRStoppedResult", - "printedName": "Sentry.SentryANRStoppedResult", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" - } - ], - "usr": "s:Sq" } ], "declKind": "Func", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate(im)anrStoppedWithResult:", - "mangledName": "$s6Sentry0A18ANRTrackerDelegateP10anrStopped6resultyAA0A16ANRStoppedResultCSg_tF", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)pauseAppHangTracking", + "mangledName": "$s6Sentry0A3SDKC20pauseAppHangTrackingyyFZ", "moduleName": "Sentry", - "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryANRTrackerDelegate>", - "sugared_genericSig": "", - "protocolReq": true, + "static": true, "declAttributes": [ - "ObjC" - ], - "spi_group_names": [ - "Private" + "Final", + "AccessControl", + "ObjC", + "RawDocComment" ], - "reqNewWitnessTableEntry": true, "funcSelfKind": "NonMutating" - } - ], - "declKind": "Protocol", - "usr": "c:@M@Sentry@objc(pl)SentryANRTrackerDelegate", - "mangledName": "$s6Sentry0A18ANRTrackerDelegateP", - "moduleName": "Sentry", - "genericSig": "<τ_0_0 : AnyObject>", - "sugared_genericSig": "", - "declAttributes": [ - "AccessControl", - "SPIAccessControl", - "ObjC", - "RawDocComment" - ], - "spi_group_names": [ - "Private" - ] - }, - { - "kind": "TypeDecl", - "name": "SentryANRStoppedResult", - "printedName": "SentryANRStoppedResult", - "children": [ + }, { - "kind": "Var", - "name": "minDuration", - "printedName": "minDuration", + "kind": "Function", + "name": "resumeAppHangTracking", + "printedName": "resumeAppHangTracking()", "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(py)minDuration", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)resumeAppHangTracking", + "mangledName": "$s6Sentry0A3SDKC21resumeAppHangTrackingyyFZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ "Final", - "HasStorage", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, - "accessors": [ - { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)minDuration", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDurationSdvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "Final", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "accessorKind": "get" - } - ] + "funcSelfKind": "NonMutating" }, { - "kind": "Var", - "name": "maxDuration", - "printedName": "maxDuration", + "kind": "Function", + "name": "flush", + "printedName": "flush(timeout:)", "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, { "kind": "TypeNominal", "name": "Double", @@ -11810,86 +17084,119 @@ "usr": "s:Sd" } ], - "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(py)maxDuration", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11maxDurationSdvp", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)flush:", + "mangledName": "$s6Sentry0A3SDKC5flush7timeoutySd_tFZ", "moduleName": "Sentry", + "static": true, + "objc_name": "flush:", "declAttributes": [ "Final", - "HasStorage", "AccessControl", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], - "isLet": true, - "hasStorage": true, - "accessors": [ + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "close", + "printedName": "close()", + "children": [ { - "kind": "Accessor", - "name": "Get", - "printedName": "Get()", - "children": [ - { - "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - } - ], - "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)maxDuration", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11maxDurationSdvg", - "moduleName": "Sentry", - "implicit": true, - "declAttributes": [ - "Final", - "ObjC" - ], - "spi_group_names": [ - "Private" - ], - "accessorKind": "get" + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" } - ] + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)close", + "mangledName": "$s6Sentry0A3SDKC5closeyyFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" }, { - "kind": "Constructor", - "name": "init", - "printedName": "init(minDuration:maxDuration:)", + "kind": "Function", + "name": "startProfiler", + "printedName": "startProfiler()", "children": [ { "kind": "TypeNominal", - "name": "SentryANRStoppedResult", - "printedName": "Sentry.SentryANRStoppedResult", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" - }, + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)startProfiler", + "mangledName": "$s6Sentry0A3SDKC13startProfileryyFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "stopProfiler", + "printedName": "stopProfiler()", + "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" - }, + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)stopProfiler", + "mangledName": "$s6Sentry0A3SDKC12stopProfileryyFZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "Final", + "AccessControl", + "ObjC", + "RawDocComment" + ], + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "clearLogger", + "printedName": "clearLogger()", + "children": [ { "kind": "TypeNominal", - "name": "Double", - "printedName": "Swift.Double", - "usr": "s:Sd" + "name": "Void", + "printedName": "()" } ], - "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)initWithMinDuration:maxDuration:", - "mangledName": "$s6Sentry0A16ANRStoppedResultC11minDuration03maxE0ACSd_Sdtcfc", + "declKind": "Func", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(cm)clearLogger", + "mangledName": "$s6Sentry0A3SDKC11clearLoggeryyFZ", "moduleName": "Sentry", + "static": true, "declAttributes": [ + "Final", "AccessControl", - "ObjC" + "SPIAccessControl", + "ObjC", + "RawDocComment" ], "spi_group_names": [ "Private" ], - "init_kind": "Designated" + "funcSelfKind": "NonMutating" }, { "kind": "Constructor", @@ -11898,14 +17205,14 @@ "children": [ { "kind": "TypeNominal", - "name": "SentryANRStoppedResult", - "printedName": "Sentry.SentryANRStoppedResult", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult" + "name": "SentrySDK", + "printedName": "Sentry.SentrySDK", + "usr": "c:@M@Sentry@objc(cs)SentrySDK" } ], "declKind": "Constructor", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult(im)init", - "mangledName": "$s6Sentry0A16ANRStoppedResultCACycfc", + "usr": "c:@M@Sentry@objc(cs)SentrySDK(im)init", + "mangledName": "$s6Sentry0A3SDKCACycfc", "moduleName": "Sentry", "overriding": true, "implicit": true, @@ -11915,26 +17222,21 @@ "ObjC", "Override" ], - "spi_group_names": [ - "Private" - ], "init_kind": "Designated" } ], "declKind": "Class", - "usr": "c:@M@Sentry@objc(cs)SentryANRStoppedResult", - "mangledName": "$s6Sentry0A16ANRStoppedResultC", + "usr": "c:@M@Sentry@objc(cs)SentrySDK", + "mangledName": "$s6Sentry0A3SDKC", "moduleName": "Sentry", + "isOpen": true, "declAttributes": [ "AccessControl", - "SPIAccessControl", - "ObjCMembers", - "ObjC" - ], - "spi_group_names": [ - "Private" + "ObjC", + "RawDocComment" ], "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, "superclassNames": [ "ObjectiveC.NSObject" ], @@ -16822,14 +22124,22 @@ }, { "kind": "TypeNominal", - "name": "String", - "printedName": "Swift.String", - "usr": "s:SS" + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" } ], "declKind": "Func", "usr": "c:@M@Sentry@objc(cs)SentryLevelHelper(cm)levelForName:", - "mangledName": "$s6Sentry0A11LevelHelperC12levelForNameyAA0aB0OSSFZ", + "mangledName": "$s6Sentry0A11LevelHelperC12levelForNameyAA0aB0OSSSgFZ", "moduleName": "Sentry", "static": true, "declAttributes": [ @@ -17502,6 +22812,13 @@ "declKind": "Import", "moduleName": "Sentry" }, + { + "kind": "Import", + "name": "PDFKit", + "printedName": "PDFKit", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "Import", "name": "WebKit", @@ -18520,8 +23837,102 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableDataSwizzling:", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvs", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableDataSwizzling:", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvs", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvM", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvM", + "moduleName": "Sentry", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "enableFileManagerSwizzling", + "printedName": "enableFileManagerSwizzling", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableFileManagerSwizzling", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvp", + "moduleName": "Sentry", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl", + "RawDocComment", + "ObjC" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableFileManagerSwizzling", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvg", + "moduleName": "Sentry", + "implicit": true, + "declAttributes": [ + "ObjC" + ], + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableFileManagerSwizzling:", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18541,8 +23952,8 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvM", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC19enableDataSwizzlingSbvM", + "usr": "s:6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvM", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvM", "moduleName": "Sentry", "implicit": true, "accessorKind": "_modify" @@ -18551,8 +23962,8 @@ }, { "kind": "Var", - "name": "enableFileManagerSwizzling", - "printedName": "enableFileManagerSwizzling", + "name": "enableUnhandledCPPExceptionsV2", + "printedName": "enableUnhandledCPPExceptionsV2", "children": [ { "kind": "TypeNominal", @@ -18562,8 +23973,8 @@ } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableFileManagerSwizzling", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvp", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableUnhandledCPPExceptionsV2", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -18587,8 +23998,8 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableFileManagerSwizzling", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvg", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableUnhandledCPPExceptionsV2", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18614,8 +24025,8 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableFileManagerSwizzling:", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvs", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableUnhandledCPPExceptionsV2:", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18635,8 +24046,8 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvM", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC26enableFileManagerSwizzlingSbvM", + "usr": "s:6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2SbvM", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2SbvM", "moduleName": "Sentry", "implicit": true, "accessorKind": "_modify" @@ -18645,8 +24056,8 @@ }, { "kind": "Var", - "name": "enableUnhandledCPPExceptionsV2", - "printedName": "enableUnhandledCPPExceptionsV2", + "name": "enableLogs", + "printedName": "enableLogs", "children": [ { "kind": "TypeNominal", @@ -18656,8 +24067,8 @@ } ], "declKind": "Var", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableUnhandledCPPExceptionsV2", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvp", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(py)enableLogs", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC10enableLogsSbvp", "moduleName": "Sentry", "declAttributes": [ "HasInitialValue", @@ -18681,8 +24092,8 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableUnhandledCPPExceptionsV2", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvg", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)enableLogs", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC10enableLogsSbvg", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18708,8 +24119,8 @@ } ], "declKind": "Accessor", - "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableUnhandledCPPExceptionsV2:", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2Sbvs", + "usr": "c:@M@Sentry@objc(cs)SentryExperimentalOptions(im)setEnableLogs:", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC10enableLogsSbvs", "moduleName": "Sentry", "implicit": true, "declAttributes": [ @@ -18729,8 +24140,8 @@ } ], "declKind": "Accessor", - "usr": "s:6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2SbvM", - "mangledName": "$s6Sentry0A19ExperimentalOptionsC30enableUnhandledCPPExceptionsV2SbvM", + "usr": "s:6Sentry0A19ExperimentalOptionsC10enableLogsSbvM", + "mangledName": "$s6Sentry0A19ExperimentalOptionsC10enableLogsSbvM", "moduleName": "Sentry", "implicit": true, "accessorKind": "_modify" @@ -19924,6 +25335,230 @@ "declKind": "Import", "moduleName": "Sentry" }, + { + "kind": "TypeDecl", + "name": "Dependencies", + "printedName": "Dependencies", + "children": [ + { + "kind": "Var", + "name": "dispatchQueueWrapper", + "printedName": "dispatchQueueWrapper", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(cpy)dispatchQueueWrapper", + "mangledName": "$s6Sentry12DependenciesC20dispatchQueueWrapperAA0a8DispatchdE0CvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(cm)dispatchQueueWrapper", + "mangledName": "$s6Sentry12DependenciesC20dispatchQueueWrapperAA0a8DispatchdE0CvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Var", + "name": "dateProvider", + "printedName": "dateProvider", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryDefaultCurrentDateProvider", + "printedName": "Sentry.SentryDefaultCurrentDateProvider", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider" + } + ], + "declKind": "Var", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(cpy)dateProvider", + "mangledName": "$s6Sentry12DependenciesC12dateProviderAA0a18DefaultCurrentDateD0CvpZ", + "moduleName": "Sentry", + "static": true, + "declAttributes": [ + "HasInitialValue", + "Final", + "HasStorage", + "AccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "isLet": true, + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryDefaultCurrentDateProvider", + "printedName": "Sentry.SentryDefaultCurrentDateProvider", + "usr": "c:@M@Sentry@objc(cs)SentryDefaultCurrentDateProvider" + } + ], + "declKind": "Accessor", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(cm)dateProvider", + "mangledName": "$s6Sentry12DependenciesC12dateProviderAA0a18DefaultCurrentDateD0CvgZ", + "moduleName": "Sentry", + "static": true, + "implicit": true, + "declAttributes": [ + "Final", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "accessorKind": "get" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "Dependencies", + "printedName": "Sentry.Dependencies", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies(im)init", + "mangledName": "$s6Sentry12DependenciesCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryDependencies", + "mangledName": "$s6Sentry12DependenciesC", + "moduleName": "Sentry", + "objc_name": "SentryDependencies", + "declAttributes": [ + "Final", + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, { "kind": "Import", "name": "AVFoundation", @@ -24212,6 +29847,7 @@ "SPIAccessControl", "ObjCMembers", "Available", + "Available", "RawDocComment", "ObjC" ], @@ -27925,6 +33561,34 @@ } ] }, + { + "kind": "Import", + "name": "AVFoundation", + "printedName": "AVFoundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "CoreGraphics", + "printedName": "CoreGraphics", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "Sentry" + }, { "kind": "Import", "name": "_SentryPrivate", @@ -28707,6 +34371,290 @@ "declKind": "Import", "moduleName": "Sentry" }, + { + "kind": "TypeDecl", + "name": "SentryNSNotificationCenterWrapper", + "printedName": "SentryNSNotificationCenterWrapper", + "children": [ + { + "kind": "Function", + "name": "addObserver", + "printedName": "addObserver(_:selector:name:object:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + }, + { + "kind": "TypeNominal", + "name": "Selector", + "printedName": "ObjectiveC.Selector", + "usr": "s:10ObjectiveC8SelectorV" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNotification.Name?", + "children": [ + { + "kind": "TypeNominal", + "name": "Name", + "printedName": "Foundation.NSNotification.Name", + "usr": "c:@T@NSNotificationName" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Any?", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper(im)addObserver:selector:name:object:", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP11addObserver_8selector4name6objectyyp_10ObjectiveC8SelectorVSo0B4NameaSgypSgtF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryNSNotificationCenterWrapper>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "addObserver", + "printedName": "addObserver(forName:object:queue:using:)", + "children": [ + { + "kind": "TypeNominal", + "name": "NSObjectProtocol", + "printedName": "ObjectiveC.NSObjectProtocol", + "usr": "c:objc(pl)NSObject" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNotification.Name?", + "children": [ + { + "kind": "TypeNominal", + "name": "Name", + "printedName": "Foundation.NSNotification.Name", + "usr": "c:@T@NSNotificationName" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Any?", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.OperationQueue?", + "children": [ + { + "kind": "TypeNominal", + "name": "OperationQueue", + "printedName": "Foundation.OperationQueue", + "usr": "c:objc(cs)NSOperationQueue" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Foundation.Notification) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Notification", + "printedName": "Foundation.Notification", + "usr": "s:10Foundation12NotificationV" + } + ] + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper(im)addObserverForName:object:queue:usingBlock:", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP11addObserver7forName6object5queue5usingSo8NSObject_pSo0bH0aSg_ypSgSo16NSOperationQueueCSgy10Foundation12NotificationVYbctF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryNSNotificationCenterWrapper>", + "sugared_genericSig": "", + "protocolReq": true, + "objc_name": "addObserverForName:object:queue:usingBlock:", + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "removeObserver", + "printedName": "removeObserver(_:name:object:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Foundation.NSNotification.Name?", + "children": [ + { + "kind": "TypeNominal", + "name": "Name", + "printedName": "Foundation.NSNotification.Name", + "usr": "c:@T@NSNotificationName" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Any?", + "children": [ + { + "kind": "TypeNominal", + "name": "ProtocolComposition", + "printedName": "Any" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper(im)removeObserver:name:object:", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP14removeObserver_4name6objectyyp_So0B4NameaSgypSgtF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryNSNotificationCenterWrapper>", + "sugared_genericSig": "", + "protocolReq": true, + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + }, + { + "kind": "Function", + "name": "post", + "printedName": "post(_:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Notification", + "printedName": "Foundation.Notification", + "usr": "s:10Foundation12NotificationV" + } + ], + "declKind": "Func", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper(im)postNotification:", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP4postyy10Foundation12NotificationVF", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 where τ_0_0 : Sentry.SentryNSNotificationCenterWrapper>", + "sugared_genericSig": "", + "protocolReq": true, + "objc_name": "postNotification:", + "declAttributes": [ + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "reqNewWitnessTableEntry": true, + "funcSelfKind": "NonMutating" + } + ], + "declKind": "Protocol", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP", + "moduleName": "Sentry", + "genericSig": "<τ_0_0 : AnyObject>", + "sugared_genericSig": "", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjC" + ], + "spi_group_names": [ + "Private" + ] + }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, { "kind": "Import", "name": "Foundation", @@ -28758,9 +34706,11 @@ "mangledName": "$s6Sentry0A22EnabledFeaturesBuilderC03getbC07optionsSaySSGSo0A7OptionsCSg_tFZ", "moduleName": "Sentry", "static": true, + "deprecated": true, "declAttributes": [ "Final", "AccessControl", + "Available", "RawDocComment", "ObjC" ], @@ -29524,6 +35474,42 @@ ], "funcSelfKind": "NonMutating" }, + { + "kind": "Function", + "name": "dispatch", + "printedName": "dispatch(after:workItem:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + }, + { + "kind": "TypeNominal", + "name": "DispatchWorkItem", + "printedName": "Dispatch.DispatchWorkItem", + "usr": "s:8Dispatch0A8WorkItemC" + } + ], + "declKind": "Func", + "usr": "s:6Sentry0A20DispatchQueueWrapperC8dispatch5after8workItemySd_0B00b4WorkH0CtF", + "mangledName": "$s6Sentry0A20DispatchQueueWrapperC8dispatch5after8workItemySd_0B00b4WorkH0CtF", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl" + ], + "spi_group_names": [ + "Private" + ], + "funcSelfKind": "NonMutating" + }, { "kind": "Var", "name": "shouldDispatchCancel", @@ -30629,6 +36615,218 @@ "ImplementationOnly" ] }, + { + "kind": "Import", + "name": "Foundation", + "printedName": "Foundation", + "declKind": "Import", + "moduleName": "Sentry" + }, + { + "kind": "TypeDecl", + "name": "SentryLogBatcher", + "printedName": "SentryLogBatcher", + "children": [ + { + "kind": "Constructor", + "name": "init", + "printedName": "init(client:flushTimeout:maxBufferSizeBytes:dispatchQueue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogBatcher", + "printedName": "Sentry.SentryLogBatcher", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher" + }, + { + "kind": "TypeNominal", + "name": "SentryClient", + "printedName": "Sentry.SentryClient", + "usr": "c:objc(cs)SentryClient" + }, + { + "kind": "TypeNominal", + "name": "Double", + "printedName": "Swift.Double", + "usr": "s:Sd" + }, + { + "kind": "TypeNominal", + "name": "Int", + "printedName": "Swift.Int", + "usr": "s:Si" + }, + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher(im)initWithClient:flushTimeout:maxBufferSizeBytes:dispatchQueue:", + "mangledName": "$s6Sentry0A10LogBatcherC6client12flushTimeout18maxBufferSizeBytes13dispatchQueueACSo0A6ClientC_SdSiAA0a8DispatchL7WrapperCtcfc", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(client:dispatchQueue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogBatcher", + "printedName": "Sentry.SentryLogBatcher", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher" + }, + { + "kind": "TypeNominal", + "name": "SentryClient", + "printedName": "Sentry.SentryClient", + "usr": "c:objc(cs)SentryClient" + }, + { + "kind": "TypeNominal", + "name": "SentryDispatchQueueWrapper", + "printedName": "Sentry.SentryDispatchQueueWrapper", + "usr": "c:@M@Sentry@objc(cs)SentryDispatchQueueWrapper" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher(im)initWithClient:dispatchQueue:", + "mangledName": "$s6Sentry0A10LogBatcherC6client13dispatchQueueACSo0A6ClientC_AA0a8DispatchF7WrapperCtcfc", + "moduleName": "Sentry", + "declAttributes": [ + "Convenience", + "AccessControl", + "SPIAccessControl", + "RawDocComment", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Convenience" + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init()", + "children": [ + { + "kind": "TypeNominal", + "name": "SentryLogBatcher", + "printedName": "Sentry.SentryLogBatcher", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher" + } + ], + "declKind": "Constructor", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher(im)init", + "mangledName": "$s6Sentry0A10LogBatcherCACycfc", + "moduleName": "Sentry", + "overriding": true, + "implicit": true, + "objc_name": "init", + "declAttributes": [ + "Dynamic", + "ObjC", + "Override" + ], + "spi_group_names": [ + "Private" + ], + "init_kind": "Designated" + } + ], + "declKind": "Class", + "usr": "c:@M@Sentry@objc(cs)SentryLogBatcher", + "mangledName": "$s6Sentry0A10LogBatcherC", + "moduleName": "Sentry", + "declAttributes": [ + "AccessControl", + "SPIAccessControl", + "ObjCMembers", + "ObjC" + ], + "spi_group_names": [ + "Private" + ], + "superclassUsr": "c:objc(cs)NSObject", + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + } + ] + }, + { + "kind": "Import", + "name": "_SentryPrivate", + "printedName": "_SentryPrivate", + "declKind": "Import", + "moduleName": "Sentry", + "declAttributes": [ + "ImplementationOnly" + ] + }, { "kind": "Import", "name": "_SentryPrivate", @@ -33240,6 +39438,94 @@ } ] }, + { + "kind": "TypeDecl", + "name": "NotificationCenter", + "printedName": "NotificationCenter", + "declKind": "Class", + "usr": "c:objc(cs)NSNotificationCenter", + "moduleName": "Foundation", + "isOpen": true, + "objc_name": "NSNotificationCenter", + "declAttributes": [ + "ObjC", + "SynthesizedProtocol", + "NonSendable", + "Sendable", + "Dynamic" + ], + "superclassUsr": "c:objc(cs)NSObject", + "isExternal": true, + "inheritsConvenienceInitializers": true, + "superclassNames": [ + "ObjectiveC.NSObject" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "CVarArg", + "printedName": "CVarArg", + "usr": "s:s7CVarArgP", + "mangledName": "$ss7CVarArgP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObservingPublishing", + "printedName": "_KeyValueCodingAndObservingPublishing", + "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP", + "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP" + }, + { + "kind": "Conformance", + "name": "_KeyValueCodingAndObserving", + "printedName": "_KeyValueCodingAndObserving", + "usr": "s:10Foundation27_KeyValueCodingAndObservingP", + "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP" + }, + { + "kind": "Conformance", + "name": "CustomStringConvertible", + "printedName": "CustomStringConvertible", + "usr": "s:s23CustomStringConvertibleP", + "mangledName": "$ss23CustomStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "CustomDebugStringConvertible", + "printedName": "CustomDebugStringConvertible", + "usr": "s:s28CustomDebugStringConvertibleP", + "mangledName": "$ss28CustomDebugStringConvertibleP" + }, + { + "kind": "Conformance", + "name": "SentryNSNotificationCenterWrapper", + "printedName": "SentryNSNotificationCenterWrapper", + "usr": "c:@M@Sentry@objc(pl)SentryNSNotificationCenterWrapper", + "mangledName": "$s6Sentry0A27NSNotificationCenterWrapperP" + } + ] + }, { "kind": "TypeDecl", "name": "DebugMeta", @@ -33791,21 +40077,21 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/RRWeb\/SentryRRWebEvent.swift", "kind": "StringLiteral", - "offset": 744, + "offset": 801, "length": 6, "value": "\"type\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/RRWeb\/SentryRRWebEvent.swift", "kind": "StringLiteral", - "offset": 779, + "offset": 836, "length": 11, "value": "\"timestamp\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/RRWeb\/SentryRRWebEvent.swift", "kind": "StringLiteral", - "offset": 907, + "offset": 964, "length": 6, "value": "\"data\"" }, @@ -34428,28 +40714,28 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryUserCodable.swift", "kind": "StringLiteral", - "offset": 484, + "offset": 402, "length": 4, "value": "\"id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryUserCodable.swift", "kind": "StringLiteral", - "offset": 555, + "offset": 473, "length": 12, "value": "\"ip_address\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryUserCodable.swift", "kind": "StringLiteral", - "offset": 484, + "offset": 402, "length": 4, "value": "\"id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryUserCodable.swift", "kind": "StringLiteral", - "offset": 555, + "offset": 473, "length": 12, "value": "\"ip_address\"" }, @@ -34645,161 +40931,161 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 220, + "offset": 263, "length": 8, "value": "\"widget\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 262, + "offset": 305, "length": 8, "value": "\"custom\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 337, + "offset": 380, "length": 6, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 337, + "offset": 380, "length": 6, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 45, + "offset": 88, "length": 14, "value": "\"Sentry.SentryFeedback\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1651, + "offset": 1980, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1655, + "offset": 1984, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1676, + "offset": 2005, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1680, + "offset": 2009, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1713, + "offset": 2042, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1717, + "offset": 2046, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "IntegerLiteral", - "offset": 1770, + "offset": 2099, "length": 1, "value": "2" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 1810, + "offset": 2139, "length": 9, "value": "\"message\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 1877, + "offset": 2206, "length": 6, "value": "\"name\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 1950, + "offset": 2279, "length": 15, "value": "\"contact_email\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2057, + "offset": 2386, "length": 21, "value": "\"associated_event_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2138, + "offset": 2467, "length": 8, "value": "\"source\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2731, + "offset": 3060, "length": 9, "value": "\"message\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2806, + "offset": 3135, "length": 6, "value": "\"name\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2879, + "offset": 3208, "length": 7, "value": "\"email\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 2966, + "offset": 3295, "length": 13, "value": "\"attachments\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 3395, + "offset": 3724, "length": 16, "value": "\"screenshot.png\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryFeedback.swift", "kind": "StringLiteral", - "offset": 3426, + "offset": 3755, "length": 17, "value": "\"application\/png\"" }, @@ -34820,105 +41106,105 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1354, + "offset": 1712, "length": 10, "value": "\"event_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1501, + "offset": 1859, "length": 17, "value": "\"start_timestamp\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1606, + "offset": 1964, "length": 13, "value": "\"server_name\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1647, + "offset": 2005, "length": 9, "value": "\"release\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1884, + "offset": 2242, "length": 10, "value": "\"contexts\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1988, + "offset": 2346, "length": 12, "value": "\"debug_meta\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1354, + "offset": 1712, "length": 10, "value": "\"event_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1501, + "offset": 1859, "length": 17, "value": "\"start_timestamp\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1606, + "offset": 1964, "length": 13, "value": "\"server_name\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1647, + "offset": 2005, "length": 9, "value": "\"release\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1884, + "offset": 2242, "length": 10, "value": "\"contexts\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 1988, + "offset": 2346, "length": 12, "value": "\"debug_meta\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 4673, + "offset": 4949, "length": 8, "value": "\"values\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 4870, + "offset": 5146, "length": 8, "value": "\"values\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryEventCodable.swift", "kind": "StringLiteral", - "offset": 5178, + "offset": 5454, "length": 8, "value": "\"images\"" }, @@ -34932,77 +41218,77 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "BooleanLiteral", - "offset": 2488, + "offset": 2537, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 3176, + "offset": 3225, "length": 39, "value": "\"init(coder:) has not been implemented\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 2615, + "offset": 2664, "length": 6, "value": "\"Sentry.Window\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 2615, + "offset": 2664, "length": 6, "value": "\"Sentry.Window\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "IntegerLiteral", - "offset": 3866, + "offset": 3915, "length": 1, "value": "8" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 5329, + "offset": 5378, "length": 105, "value": "\"SentryUserFeedbackWidget.RootViewController is not intended to be initialized from a nib or storyboard.\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "FloatLiteral", - "offset": 5722, + "offset": 5771, "length": 3, "value": "0.3" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "IntegerLiteral", - "offset": 5734, + "offset": 5783, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "IntegerLiteral", - "offset": 5816, + "offset": 5865, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "IntegerLiteral", - "offset": 5820, + "offset": 5869, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackWidget.swift", "kind": "StringLiteral", - "offset": 3741, + "offset": 3790, "length": 18, "value": "\"Sentry.RootViewController\"" }, @@ -35062,150 +41348,262 @@ "length": 12, "value": "\"Sentry.UserFeedback\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "Array", + "offset": 1118, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "StringLiteral", + "offset": 1493, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "Array", + "offset": 1544, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "StringLiteral", + "offset": 1578, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "IntegerLiteral", + "offset": 1622, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "IntegerLiteral", + "offset": 1932, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "IntegerLiteral", + "offset": 2212, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "StringLiteral", + "offset": 4419, + "length": 25, + "value": "\"{\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "StringLiteral", + "offset": 4442, + "length": 1, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogMessage.swift", + "kind": "IntegerLiteral", + "offset": 4608, + "length": 1, + "value": "1" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 462, + "offset": 380, "length": 13, "value": "\"symbol_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 500, + "offset": 418, "length": 10, "value": "\"filename\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 602, + "offset": 520, "length": 12, "value": "\"image_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 671, + "offset": 589, "length": 18, "value": "\"instruction_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1012, + "offset": 930, "length": 8, "value": "\"lineno\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1049, + "offset": 967, "length": 7, "value": "\"colno\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1078, + "offset": 1002, + "length": 14, + "value": "\"context_line\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1043, + "length": 13, + "value": "\"pre_context\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1084, + "length": 14, + "value": "\"post_context\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1138, "length": 8, "value": "\"in_app\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1113, + "offset": 1173, "length": 13, "value": "\"stack_start\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 462, + "offset": 380, "length": 13, "value": "\"symbol_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 500, + "offset": 418, "length": 10, "value": "\"filename\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 602, + "offset": 520, "length": 12, "value": "\"image_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 671, + "offset": 589, "length": 18, "value": "\"instruction_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1012, + "offset": 930, "length": 8, "value": "\"lineno\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1049, + "offset": 967, "length": 7, "value": "\"colno\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1078, + "offset": 1002, + "length": 14, + "value": "\"context_line\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1043, + "length": 13, + "value": "\"pre_context\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1084, + "length": 14, + "value": "\"post_context\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", + "kind": "StringLiteral", + "offset": 1138, "length": 8, "value": "\"in_app\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryFrameCodable.swift", "kind": "StringLiteral", - "offset": 1113, + "offset": 1173, "length": 13, "value": "\"stack_start\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 504, + "offset": 422, "length": 4, "value": "\"id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 615, + "offset": 533, "length": 6, "value": "\"main\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 504, + "offset": 422, "length": 4, "value": "\"id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 615, + "offset": 533, "length": 6, "value": "\"main\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryThreadCodable.swift", "kind": "StringLiteral", - "offset": 1159, + "offset": 1063, "length": 61, "value": "\"Can't decode SentryThread because couldn't decode threadId.\"" }, @@ -35275,42 +41673,49 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryGeoCodable.swift", "kind": "StringLiteral", - "offset": 480, + "offset": 398, "length": 14, "value": "\"country_code\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryGeoCodable.swift", "kind": "StringLiteral", - "offset": 480, + "offset": 398, "length": 14, "value": "\"country_code\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", "kind": "StringLiteral", - "offset": 309, + "offset": 203, + "length": 9, + "value": "\"Sentry.SentryLog\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", + "kind": "StringLiteral", + "offset": 1421, "length": 10, "value": "\"trace_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", "kind": "StringLiteral", - "offset": 411, + "offset": 1523, "length": 17, "value": "\"severity_number\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", "kind": "StringLiteral", - "offset": 309, + "offset": 1421, "length": 10, "value": "\"trace_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLog.swift", "kind": "StringLiteral", - "offset": 411, + "offset": 1523, "length": 17, "value": "\"severity_number\"" }, @@ -35342,6 +41747,104 @@ "length": 71, "value": "\"Non string found in fingerprint array, returning only string elements\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 1284, + "length": 11, + "value": "\"\/usr\/lib\/\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 1332, + "length": 43, + "value": "\"\/Library\/Developer\/CoreSimulator\/Volumes\/\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 1408, + "length": 18, + "value": "\"\/System\/Library\/\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "BooleanLiteral", + "offset": 1605, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "BooleanLiteral", + "offset": 1719, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "IntegerLiteral", + "offset": 2612, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "IntegerLiteral", + "offset": 2899, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "Array", + "offset": 3897, + "length": 67, + "value": "[\"❌ Sentry SDK was loaded multiple times in the same binary ❌\"]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4008, + "length": 76, + "value": "\"⚠️ This can cause undefined behavior, crashes, or duplicate reporting.\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4129, + "length": 103, + "value": "\"Ensure the SDK is linked only once, found `\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4196, + "length": 1, + "value": "\"` class in image path: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4231, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "StringLiteral", + "offset": 4307, + "length": 4, + "value": "\"\n\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/LoadValidator.swift", + "kind": "BooleanLiteral", + "offset": 4359, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryReplayRecording.swift", "kind": "StringLiteral", @@ -35496,6 +41999,251 @@ "length": 47, "value": "\"Sentry.SentryUserFeedbackWidgetButtonMegaphoneIconView\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 1990, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 2308, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 2841, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 3159, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 3690, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 4004, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 4534, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 4850, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 5383, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 5702, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 6236, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "Dictionary", + "offset": 6554, + "length": 3, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "FloatLiteral", + "offset": 7045, + "length": 3, + "value": "0.0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 7561, + "length": 25, + "value": "\"sentry.message.template\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 7793, + "length": 35, + "value": "\"sentry.message.parameter.\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 7827, + "length": 14, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 8911, + "length": 17, + "value": "\"sentry.sdk.name\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 8985, + "length": 20, + "value": "\"sentry.sdk.version\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9068, + "length": 20, + "value": "\"sentry.environment\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9217, + "length": 16, + "value": "\"sentry.release\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9336, + "length": 29, + "value": "\"sentry.trace.parent_span_id\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9669, + "length": 6, + "value": "\"name\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9713, + "length": 9, + "value": "\"os.name\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9795, + "length": 9, + "value": "\"version\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 9842, + "length": 12, + "value": "\"os.version\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10192, + "length": 14, + "value": "\"device.brand\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10224, + "length": 7, + "value": "\"Apple\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10285, + "length": 7, + "value": "\"model\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10330, + "length": 14, + "value": "\"device.model\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10429, + "length": 8, + "value": "\"family\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10475, + "length": 15, + "value": "\"device.family\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10771, + "length": 9, + "value": "\"user.id\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10877, + "length": 11, + "value": "\"user.name\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 10989, + "length": 12, + "value": "\"user.email\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogger.swift", + "kind": "StringLiteral", + "offset": 1286, + "length": 12, + "value": "\"Sentry.SentryLogger\"" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoInfo.swift", "kind": "StringLiteral", @@ -35506,42 +42254,42 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismMetaCodable.swift", "kind": "StringLiteral", - "offset": 522, + "offset": 440, "length": 16, "value": "\"mach_exception\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismMetaCodable.swift", "kind": "StringLiteral", - "offset": 560, + "offset": 478, "length": 10, "value": "\"ns_error\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismMetaCodable.swift", "kind": "StringLiteral", - "offset": 522, + "offset": 440, "length": 16, "value": "\"mach_exception\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismMetaCodable.swift", "kind": "StringLiteral", - "offset": 560, + "offset": 478, "length": 10, "value": "\"ns_error\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryStacktraceCodable.swift", "kind": "Array", - "offset": 972, + "offset": 876, "length": 2, "value": "[]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryStacktraceCodable.swift", "kind": "Dictionary", - "offset": 1075, + "offset": 979, "length": 3, "value": "[]" }, @@ -37018,28 +43766,28 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismCodable.swift", "kind": "StringLiteral", - "offset": 535, + "offset": 453, "length": 13, "value": "\"description\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismCodable.swift", "kind": "StringLiteral", - "offset": 591, + "offset": 509, "length": 11, "value": "\"help_link\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismCodable.swift", "kind": "StringLiteral", - "offset": 535, + "offset": 453, "length": 13, "value": "\"description\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryMechanismCodable.swift", "kind": "StringLiteral", - "offset": 591, + "offset": 509, "length": 11, "value": "\"help_link\"" }, @@ -37295,17 +44043,38 @@ "length": 22, "value": "\"Sentry.SentryANRStoppedResult\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentrySDK.swift", + "kind": "IntegerLiteral", + "offset": 18984, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentrySDK.swift", + "kind": "FloatLiteral", + "offset": 22688, + "length": 3, + "value": "0.0" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentrySDK.swift", + "kind": "FloatLiteral", + "offset": 22776, + "length": 3, + "value": "0.0" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/MetricKit\/SentryMXManager.swift", "kind": "BooleanLiteral", - "offset": 1401, + "offset": 1205, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/MetricKit\/SentryMXManager.swift", "kind": "StringLiteral", - "offset": 1250, + "offset": 1054, "length": 15, "value": "\"Sentry.SentryMXManager\"" }, @@ -37844,168 +44613,168 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "Array", - "offset": 2233, + "offset": 2247, "length": 44, "value": "[\"RCTTextView\", \"RCTParagraphComponentView\"]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "Array", - "offset": 2461, + "offset": 2475, "length": 233, "value": "[\"_TtCOCV7SwiftUI11DisplayList11ViewUpdater8Platform13CGDrawingView\", \"_TtC7SwiftUIP33_A34643117F00277B93DEBAB70EC0697122_UIShapeHitTestingView\", \"SwiftUI._UIGraphicsView\", \"SwiftUI.ImageLayer\"]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "Array", - "offset": 2959, + "offset": 2973, "length": 16, "value": "[\"RCTImageView\"]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "Array", - "offset": 3175, + "offset": 3203, "length": 406, "value": "[\"UIWebView\", \"SFSafariView\"]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 4634, + "offset": 4662, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 4732, + "offset": 4760, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 9089, + "offset": 9117, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 9305, + "offset": 9333, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 9547, + "offset": 9575, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 9774, + "offset": 9802, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 10248, + "offset": 10276, "length": 2, "value": "10" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 10274, + "offset": 10302, "length": 2, "value": "10" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 10292, + "offset": 10320, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "StringLiteral", - "offset": 10347, + "offset": 10375, "length": 19, "value": "\"_containingBundle\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 10634, + "offset": 10662, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 10730, + "offset": 10758, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "BooleanLiteral", - "offset": 11616, + "offset": 11644, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 12365, + "offset": 12393, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14476, + "offset": 14504, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14496, + "offset": 14524, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14624, + "offset": 14652, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14923, + "offset": 14951, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 14999, + "offset": 15027, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/ViewCapture\/SentryUIRedactBuilder.swift", "kind": "IntegerLiteral", - "offset": 15005, + "offset": 15033, "length": 1, "value": "1" }, @@ -38254,6 +45023,13 @@ "length": 5, "value": "false" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/SentryExperimentalOptions.swift", + "kind": "BooleanLiteral", + "offset": 1939, + "length": 5, + "value": "false" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Core\/Tools\/UrlSanitized.swift", "kind": "StringLiteral", @@ -38572,63 +45348,63 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "StringLiteral", - "offset": 1089, + "offset": 1226, "length": 94, "value": "\"[Session Replay] Appending image to pixel buffer with presentation time: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "StringLiteral", - "offset": 1182, + "offset": 1319, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "StringLiteral", - "offset": 1268, + "offset": 1405, "length": 86, "value": "\"[Session Replay] Could not append image to pixel buffer, reason: pixel buffer is nil\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "BooleanLiteral", - "offset": 1375, + "offset": 1512, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "IntegerLiteral", - "offset": 1769, + "offset": 1906, "length": 1, "value": "8" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "StringLiteral", - "offset": 2001, + "offset": 2138, "length": 93, "value": "\"[Session Replay] Failed to append image to pixel buffer, reason: could not create CGContext\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "BooleanLiteral", - "offset": 2115, + "offset": 2252, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "IntegerLiteral", - "offset": 2176, + "offset": 2313, "length": 1, "value": "0" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryPixelBuffer.swift", "kind": "IntegerLiteral", - "offset": 2182, + "offset": 2319, "length": 1, "value": "0" }, @@ -38698,28 +45474,28 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryRequestCodable.swift", "kind": "StringLiteral", - "offset": 509, + "offset": 427, "length": 11, "value": "\"body_size\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryRequestCodable.swift", "kind": "StringLiteral", - "offset": 632, + "offset": 550, "length": 14, "value": "\"query_string\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryRequestCodable.swift", "kind": "StringLiteral", - "offset": 509, + "offset": 427, "length": 11, "value": "\"body_size\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryRequestCodable.swift", "kind": "StringLiteral", - "offset": 632, + "offset": 550, "length": 14, "value": "\"query_string\"" }, @@ -39818,77 +46594,77 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 3591, + "offset": 3640, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 3719, + "offset": 3768, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "StringLiteral", - "offset": 622, + "offset": 671, "length": 35, "value": "\"Sentry.SentryUserFeedbackIntegrationDriver\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 4488, + "offset": 4586, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 4555, + "offset": 4653, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 5092, + "offset": 5288, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 5159, + "offset": 5355, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 5560, + "offset": 5805, "length": 5, "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "BooleanLiteral", - "offset": 5628, + "offset": 5873, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "StringLiteral", - "offset": 6809, + "offset": 7054, "length": 139, "value": "\"Invalid widget location specified: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/UserFeedback\/SentryUserFeedbackIntegrationDriver.swift", "kind": "StringLiteral", - "offset": 6863, + "offset": 7108, "length": 1, "value": "\". Must specify either one edge or one corner of the screen rect to place the widget.\"" }, @@ -40238,115 +47014,437 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 376, + "offset": 384, + "length": 5, + "value": "1" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 403, + "length": 4, + "value": "2" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 421, + "length": 4, + "value": "3" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 439, + "length": 5, + "value": "4" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 458, + "length": 5, + "value": "5" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 790, + "length": 7, + "value": "\"trace\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 846, + "length": 7, + "value": "\"debug\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 902, + "length": 6, + "value": "\"info\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 956, + "length": 6, + "value": "\"warn\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1010, + "length": 7, + "value": "\"error\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1066, + "length": 7, + "value": "\"fatal\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1164, + "length": 16, + "value": "\"SentryLogLevel\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 1188, "length": 1, "value": "1" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1229, + "length": 29, + "value": "\"Unknown log level: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1257, + "length": 3, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1459, + "length": 7, + "value": "\"trace\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1515, + "length": 7, + "value": "\"debug\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1570, + "length": 6, + "value": "\"info\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1624, + "length": 6, + "value": "\"warn\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1679, + "length": 7, + "value": "\"error\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "StringLiteral", + "offset": 1735, + "length": 7, + "value": "\"fatal\"" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 426, + "offset": 2107, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 2157, "length": 1, "value": "5" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 475, + "offset": 2206, "length": 1, "value": "9" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 524, + "offset": 2255, "length": 2, "value": "13" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 575, + "offset": 2306, "length": 2, "value": "17" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", "kind": "IntegerLiteral", - "offset": 626, + "offset": 2357, "length": 2, "value": "21" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 384, + "length": 5, + "value": "1" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 403, + "length": 4, + "value": "2" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 421, + "length": 4, + "value": "3" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 439, + "length": 5, + "value": "4" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogLevel.swift", + "kind": "IntegerLiteral", + "offset": 458, + "length": 5, + "value": "5" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 256, + "offset": 641, "length": 8, "value": "\"string\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 299, + "offset": 792, "length": 9, "value": "\"boolean\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 343, + "offset": 943, "length": 9, "value": "\"integer\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 386, + "offset": 1096, "length": 8, "value": "\"double\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1084, + "offset": 1304, + "length": 8, + "value": "\"double\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 1531, "length": 8, "value": "\"string\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1193, + "offset": 1649, "length": 9, "value": "\"boolean\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1302, + "offset": 1764, "length": 9, "value": "\"integer\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1410, + "offset": 1884, "length": 8, "value": "\"double\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1626, + "offset": 2004, + "length": 8, + "value": "\"double\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 2182, + "length": 8, + "value": "\"string\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 332, + "length": 9, + "value": "\"Sentry.Attribute\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 2788, + "length": 8, + "value": "\"string\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 2881, + "length": 9, + "value": "\"boolean\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 2973, + "length": 9, + "value": "\"integer\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3064, + "length": 8, + "value": "\"double\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3260, "length": 23, "value": "\"Unknown type: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", "kind": "StringLiteral", - "offset": 1648, + "offset": 3282, "length": 2, "value": "\"\"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3590, + "length": 8, + "value": "\"string\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3788, + "length": 50, + "value": "\"Expected String but got \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3837, + "length": 3, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 3930, + "length": 9, + "value": "\"boolean\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4125, + "length": 48, + "value": "\"Expected Bool but got \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4172, + "length": 3, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4263, + "length": 9, + "value": "\"integer\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4456, + "length": 47, + "value": "\"Expected Int but got \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4502, + "length": 3, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4592, + "length": 8, + "value": "\"double\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4790, + "length": 50, + "value": "\"Expected Double but got \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/SentryLogAttribute.swift", + "kind": "StringLiteral", + "offset": 4839, + "length": 3, + "value": "\"\"" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Persistence\/SentryScopePersistentStore.swift", "kind": "IntegerLiteral", @@ -40844,6 +47942,293 @@ "length": 3, "value": "\" \"" }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "Array", + "offset": 1263, + "length": 2, + "value": "[]" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "BooleanLiteral", + "offset": 1292, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 1908, + "length": 77, + "value": "\"[Session Replay] Video writer input is ready, status: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 1984, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 2078, + "length": 157, + "value": "\"[Session Replay] Video writer is not writing anymore, cancelling the writing session, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 2218, + "length": 15, + "value": "\"Unknown error\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 2234, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 2567, + "length": 75, + "value": "\"[Session Replay] No more frames available to process, finishing the video\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "IntegerLiteral", + "offset": 3031, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3256, + "length": 77, + "value": "\"[Session Replay] Image at index \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3302, + "length": 2, + "value": "\" is ready, size: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3332, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3423, + "length": 58, + "value": "\"[Session Replay] Image size has changed, finishing video\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 3956, + "length": 139, + "value": "\"[Session Replay] Failed to append image to pixel buffer, cancelling the writing session, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4094, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4722, + "length": 171, + "value": "\"[Session Replay] Finishing video with output file URL: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4794, + "length": 1, + "value": "\", used frames count: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4834, + "length": 1, + "value": "\", video height: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4864, + "length": 1, + "value": "\", video width: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 4892, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5083, + "length": 104, + "value": "\"[Session Replay] On-demand replay is deallocated, completing writing session without output video info\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5389, + "length": 77, + "value": "\"[Session Replay] Finished video writing, status: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5465, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5576, + "length": 121, + "value": "\"[Session Replay] Finish writing video was called with status writing, this is unexpected! Completing with no video info\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 5920, + "length": 85, + "value": "\"[Session Replay] Finish writing video was cancelled, completing with no video info.\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 6226, + "length": 96, + "value": "\"[Session Replay] Finish writing video was completed, creating video info from file attributes.\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 6875, + "length": 85, + "value": "\"[Session Replay] Failed to create video info from file attributes, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 6959, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7091, + "length": 101, + "value": "\"[Session Replay] Finish writing video failed, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7191, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7368, + "length": 114, + "value": "\"[Session Replay] Finish writing video with unknown status, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7481, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7661, + "length": 111, + "value": "\"[Session Replay] Finish writing video in unknown state, reason: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 7771, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8059, + "length": 156, + "value": "\"[Session Replay] Getting video info from file: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8128, + "length": 1, + "value": "\", width: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8150, + "length": 1, + "value": "\", height: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8174, + "length": 1, + "value": "\", used frames count: \"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8214, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 8430, + "length": 94, + "value": "\"[Session Replay] Failed to read video size from video file, reason: size attribute not found\"" + }, + { + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryVideoFrameProcessor.swift", + "kind": "StringLiteral", + "offset": 9050, + "length": 92, + "value": "\"[Session Replay] Failed to read video start time from used frames, reason: no frames found\"" + }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryReplayEvent.swift", "kind": "StringLiteral", @@ -41484,105 +48869,105 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "Array", - "offset": 307, + "offset": 526, "length": 2, "value": "[]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "Array", - "offset": 353, + "offset": 572, "length": 2, "value": "[]" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 442, + "offset": 661, "length": 23, "value": "\"captureFailedRequests\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 555, + "offset": 774, "length": 15, "value": "\"performanceV2\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 671, + "offset": 890, "length": 26, "value": "\"timeToFullDisplayTracing\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 843, + "offset": 1082, "length": 20, "value": "\"appLaunchProfiling\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1086, + "offset": 1351, "length": 26, "value": "\"preWarmedAppStartTracing\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1261, + "offset": 1526, "length": 23, "value": "\"swiftAsyncStacktraces\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1428, + "offset": 1713, "length": 19, "value": "\"appHangTrackingV2\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1615, + "offset": 1926, "length": 30, "value": "\"persistingTracesWhenCrashing\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 1875, + "offset": 2174, "length": 26, "value": "\"experimentalViewRenderer\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 2000, + "offset": 2287, "length": 19, "value": "\"fastViewRendering\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 2166, + "offset": 2453, "length": 15, "value": "\"dataSwizzling\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 2282, + "offset": 2569, "length": 22, "value": "\"fileManagerSwizzling\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryEnabledFeaturesBuilder.swift", "kind": "StringLiteral", - "offset": 2409, + "offset": 2696, "length": 26, "value": "\"unhandledCPPExceptionsV2\"" }, @@ -41834,14 +49219,14 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryDispatchQueueWrapper.swift", "kind": "BooleanLiteral", - "offset": 2424, + "offset": 2699, "length": 4, "value": "true" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Helper\/SentryDispatchQueueWrapper.swift", "kind": "BooleanLiteral", - "offset": 2504, + "offset": 2779, "length": 4, "value": "true" }, @@ -42422,373 +49807,212 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 11343, + "offset": 11344, "length": 70, "value": "\"[Session Replay] Failed to render video, reason: index out of bounds\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 11687, + "offset": 11627, "length": 107, "value": "\"[Session Replay] Failed to render video, reason: can't read image at path: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 11793, + "offset": 11733, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12189, + "offset": 12065, "length": 79, "value": "\"[Session Replay] Creating video writer with output file URL: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12267, + "offset": 12143, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12451, + "offset": 12327, "length": 66, "value": "\"[Session Replay] Failed to create video writer, reason: \"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12516, + "offset": 12392, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12604, + "offset": 12480, "length": 65, "value": "\"[Session Replay] Creating pixel buffer based video writer input\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 12965, + "offset": 12841, "length": 79, "value": "\"[Session Replay] Failed to render video, reason: pixel buffer creation failed\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 14954, - "length": 77, - "value": "\"[Session Replay] Video writer input is ready, status: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15030, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15117, - "length": 104, - "value": "\"[Session Replay] On-demand replay is deallocated, completing writing session without output video info\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15393, - "length": 157, - "value": "\"[Session Replay] Video writer is not writing anymore, cancelling the writing session, reason: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15533, - "length": 15, - "value": "\"Unknown error\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15549, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 15829, - "length": 75, - "value": "\"[Session Replay] No more frames available to process, finishing the video\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 16440, - "length": 77, - "value": "\"[Session Replay] Image at index \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 16486, - "length": 2, - "value": "\" is ready, size: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 16516, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 16615, - "length": 58, - "value": "\"[Session Replay] Image size has changed, finishing video\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 17485, - "length": 139, - "value": "\"[Session Replay] Failed to append image to pixel buffer, cancelling the writing session, reason: \"" + "kind": "BooleanLiteral", + "offset": 16302, + "length": 5, + "value": "false" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 17623, - "length": 2, - "value": "\"\"" + "kind": "IntegerLiteral", + "offset": 16834, + "length": 1, + "value": "6" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "IntegerLiteral", - "offset": 18068, + "offset": 19744, "length": 1, "value": "1" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", "kind": "StringLiteral", - "offset": 18573, - "length": 171, - "value": "\"[Session Replay] Finishing video with output file URL: \"" + "offset": 327, + "length": 20, + "value": "\"Sentry.SentryOnDemandReplay\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18645, - "length": 1, - "value": "\", used frames count: \"" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "Array", + "offset": 563, + "length": 2, + "value": "[]" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18685, + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 605, "length": 1, - "value": "\", video height: \"" + "value": "0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18715, + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 2378, "length": 1, - "value": "\", video width: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18743, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18887, - "length": 72, - "value": "\"[Session Replay] Finished video writing, status: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 18958, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 19045, - "length": 104, - "value": "\"[Session Replay] On-demand replay is deallocated, completing writing session without output video info\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 19317, - "length": 121, - "value": "\"[Session Replay] Finish writing video was called with status writing, this is unexpected! Completing with no video info\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 19548, - "length": 85, - "value": "\"[Session Replay] Finish writing video was cancelled, completing with no video info.\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 19741, - "length": 96, - "value": "\"[Session Replay] Finish writing video was completed, creating video info from file attributes.\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20260, - "length": 85, - "value": "\"[Session Replay] Failed to create video info from file attributes, reason: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20344, - "length": 2, - "value": "\"\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20476, - "length": 96, - "value": "\"[Session Replay] Finish writing video failed, reason: \"" + "value": "5" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20571, - "length": 2, - "value": "\"\"" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 2413, + "length": 5, + "value": "1024" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20743, - "length": 109, - "value": "\"[Session Replay] Finish writing video with unknown status, reason: \"" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 2421, + "length": 5, + "value": "1024" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 20851, - "length": 2, - "value": "\"\"" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "FloatLiteral", + "offset": 3110, + "length": 15, + "value": "1000000000.0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21026, - "length": 106, - "value": "\"[Session Replay] Finish writing video in unknown state, reason: \"" + "offset": 3808, + "length": 32, + "value": "\"Failed to encode log: \"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21131, + "offset": 3839, "length": 2, "value": "\"\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21431, - "length": 156, - "value": "\"[Session Replay] Getting video info from file: \"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 21500, - "length": 1, - "value": "\", width: \"" + "offset": 4047, + "length": 56, + "value": "\"SentryLogBatcher: Timer fired, calling performFlush().\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 21522, + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 4501, "length": 1, - "value": "\", height: \"" + "value": "0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "StringLiteral", - "offset": 21546, + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "IntegerLiteral", + "offset": 4654, "length": 1, - "value": "\", used frames count: \"" + "value": "0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21586, - "length": 2, - "value": "\"\"" + "offset": 4694, + "length": 37, + "value": "\"SentryLogBatcher: No logs to flush.\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 21802, - "length": 94, - "value": "\"[Session Replay] Failed to read video size from video file, reason: size attribute not found\"" + "offset": 4868, + "length": 14, + "value": "\"{\"items\":[\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 22422, - "length": 92, - "value": "\"[Session Replay] Failed to read video start time from used frames, reason: no frames found\"" - }, - { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "BooleanLiteral", - "offset": 24892, - "length": 5, - "value": "false" + "offset": 4919, + "length": 3, + "value": "\",\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "IntegerLiteral", - "offset": 25424, + "offset": 5014, "length": 1, - "value": "6" + "value": "0" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", - "kind": "IntegerLiteral", - "offset": 28334, - "length": 1, - "value": "1" + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", + "kind": "StringLiteral", + "offset": 5163, + "length": 4, + "value": "\"]}\"" }, { - "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Integrations\/SessionReplay\/SentryOnDemandReplay.swift", + "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Tools\/SentryLogBatcher.swift", "kind": "StringLiteral", - "offset": 327, - "length": 20, - "value": "\"Sentry.SentryOnDemandReplay\"" + "offset": 109, + "length": 16, + "value": "\"Sentry.SentryLogBatcher\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Persistence\/SentryScopePersistentStore+Tags.swift", @@ -42814,84 +50038,84 @@ { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 506, + "offset": 424, "length": 10, "value": "\"debug_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 578, + "offset": 496, "length": 12, "value": "\"image_size\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 619, + "offset": 537, "length": 12, "value": "\"image_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 662, + "offset": 580, "length": 14, "value": "\"image_vmaddr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 701, + "offset": 619, "length": 11, "value": "\"code_file\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 506, + "offset": 424, "length": 10, "value": "\"debug_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 578, + "offset": 496, "length": 12, "value": "\"image_size\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 619, + "offset": 537, "length": 12, "value": "\"image_addr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 662, + "offset": 580, "length": 14, "value": "\"image_vmaddr\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryDebugMetaCodable.swift", "kind": "StringLiteral", - "offset": 701, + "offset": 619, "length": 11, "value": "\"code_file\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryExceptionCodable.swift", "kind": "StringLiteral", - "offset": 569, + "offset": 487, "length": 11, "value": "\"thread_id\"" }, { "filePath": "\/Users\/runner\/work\/sentry-cocoa\/sentry-cocoa\/Sources\/Swift\/Protocol\/Codable\/SentryExceptionCodable.swift", "kind": "StringLiteral", - "offset": 569, + "offset": 487, "length": 11, "value": "\"thread_id\"" } diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.private.swiftinterface b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.private.swiftinterface index fc98c90..d4b7255 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.private.swiftinterface +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.private.swiftinterface @@ -1,14 +1,17 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) -// swift-module-flags: -target arm64e-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name Sentry +// swift-module-flags: -target arm64e-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name Sentry // swift-module-flags-ignorable: -enable-bare-slash-regex import AVFoundation import CoreGraphics import CoreMedia +import Darwin import Foundation +import MachO import MetricKit import ObjectiveC.NSObjCRuntime import ObjectiveC +import PDFKit @_exported import Sentry import Swift import UIKit @@ -45,6 +48,7 @@ import _SwiftConcurrencyShims @_spi(Private) @objc(SentryRRWebEvent) public protocol SentryRRWebEventProtocol : Sentry.SentrySerializable { } @_spi(Private) @objc @_hasMissingDesignatedInitializers @objcMembers public class SentryRRWebEvent : ObjectiveC.NSObject, Sentry.SentryRRWebEventProtocol { + @_spi(Private) @objc final public let data: [Swift.String : Any]? @_spi(Private) @objc public func serialize() -> [Swift.String : Any] @_spi(Private) @objc deinit } @@ -87,6 +91,8 @@ extension Sentry.User : Swift.Decodable { @objc deinit } extension Sentry.SentryFeedback : Sentry.SentrySerializable { +} +extension Sentry.SentryFeedback { @objc dynamic public func serialize() -> [Swift.String : Any] } extension Sentry.SentryFeedback { @@ -109,6 +115,24 @@ extension Sentry.SentryFeedback { @objc open func serialize() -> [Swift.String : Any] @objc deinit } +public struct SentryLogMessage : Swift.ExpressibleByStringInterpolation { + public init(stringLiteral value: Swift.String) + public init(stringInterpolation: Sentry.SentryLogMessage.StringInterpolation) + public struct StringInterpolation : Swift.StringInterpolationProtocol { + public init(literalCapacity: Swift.Int, interpolationCount: Swift.Int) + public mutating func appendLiteral(_ literal: Swift.String) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.String) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Bool) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Int) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Double) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Float) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> T) where T : Swift.CustomStringConvertible + public typealias StringLiteralType = Swift.String + } + public typealias ExtendedGraphemeClusterLiteralType = Swift.String + public typealias StringLiteralType = Swift.String + public typealias UnicodeScalarLiteralType = Swift.String +} extension Sentry.Frame : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } @@ -118,6 +142,24 @@ extension Sentry.SentryThread : Swift.Decodable { extension Sentry.Geo : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } +@_hasMissingDesignatedInitializers @objc @objcMembers final public class SentryLog : ObjectiveC.NSObject { + @objc final public var timestamp: Foundation.Date + @objc final public var traceId: Sentry.SentryId + @objc final public var level: Sentry.SentryLog.Level + @objc final public var body: Swift.String + @objc final public var attributes: [Swift.String : Sentry.SentryLog.Attribute] + @objc final public var severityNumber: Foundation.NSNumber? + @objc deinit +} +@_spi(Private) extension Sentry.SentryLog : Swift.Codable { + @_spi(Private) convenience public init(from decoder: any Swift.Decoder) throws + @_spi(Private) final public func encode(to encoder: any Swift.Encoder) throws +} +@_spi(Private) @_inheritsConvenienceInitializers @objc final public class LoadValidator : ObjectiveC.NSObject { + @_spi(Private) @objc final public class func checkForDuplicatedSDK(imageName: Swift.String, imageAddress: Foundation.NSNumber, imageSize: Foundation.NSNumber, dispatchQueueWrapper: Sentry.SentryDispatchQueueWrapper) + @_spi(Private) @objc override dynamic public init() + @_spi(Private) @objc deinit +} @_spi(Private) @objc @_hasMissingDesignatedInitializers @objcMembers public class SentryReplayRecording : ObjectiveC.NSObject { @_spi(Private) @objc convenience public init(segmentId: Swift.Int, video: Sentry.SentryVideoInfo, extraEvents: [any Sentry.SentryRRWebEventProtocol]) @_spi(Private) @objc public func headerForReplayRecording() -> [Swift.String : Any] @@ -145,6 +187,28 @@ extension Foundation.FileManager { @_spi(Private) @objc override dynamic public init() @_spi(Private) @objc deinit } +@objc final public class SentryLogger : ObjectiveC.NSObject { + @_spi(Private) public init(hub: Sentry.SentryHub, dateProvider: any Sentry.SentryCurrentDateProvider, batcher: Sentry.SentryLogBatcher?) + final public func trace(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(trace:) final public func trace(_ body: Swift.String) + @objc(trace:attributes:) final public func trace(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func debug(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(debug:) final public func debug(_ body: Swift.String) + @objc(debug:attributes:) final public func debug(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func info(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(info:) final public func info(_ body: Swift.String) + @objc(info:attributes:) final public func info(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func warn(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(warn:) final public func warn(_ body: Swift.String) + @objc(warn:attributes:) final public func warn(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func error(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(error:) final public func error(_ body: Swift.String) + @objc(error:attributes:) final public func error(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func fatal(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(fatal:) final public func fatal(_ body: Swift.String) + @objc(fatal:attributes:) final public func fatal(_ body: Swift.String, attributes: [Swift.String : Any]) + @objc deinit +} @_spi(Private) @objc @_hasMissingDesignatedInitializers @objcMembers public class SentryVideoInfo : ObjectiveC.NSObject { @_spi(Private) @objc final public let path: Foundation.URL @_spi(Private) @objc final public let start: Foundation.Date @@ -352,6 +416,85 @@ extension Sentry.SentryMessage : Swift.Decodable { @_spi(Private) @objc public init(minDuration: Foundation.TimeInterval, maxDuration: Foundation.TimeInterval) @_spi(Private) @objc deinit } +@_inheritsConvenienceInitializers @objc open class SentrySDK : ObjectiveC.NSObject { + @objc public static var span: (any Sentry.Span)? { + @objc get + } + @objc public static var isEnabled: Swift.Bool { + @objc get + } + @objc public static var replay: Sentry.SentryReplayApi { + @objc get + } + @objc public static var logger: Sentry.SentryLogger { + @objc get + } + @objc public static func start(options: Sentry.Options) + @objc public static func start(configureOptions: @escaping (Sentry.Options) -> Swift.Void) + @discardableResult + @objc(captureEvent:) public static func capture(event: Sentry.Event) -> Sentry.SentryId + @discardableResult + @objc(captureEvent:withScope:) public static func capture(event: Sentry.Event, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureEvent:withScopeBlock:) public static func capture(event: Sentry.Event, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc public static func startTransaction(name: Swift.String, operation: Swift.String) -> any Sentry.Span + @discardableResult + @objc public static func startTransaction(name: Swift.String, operation: Swift.String, bindToScope: Swift.Bool) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:bindToScope:) public static func startTransaction(transactionContext: Sentry.TransactionContext, bindToScope: Swift.Bool) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:bindToScope:customSamplingContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext, bindToScope: Swift.Bool, customSamplingContext: [Swift.String : Any]) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:customSamplingContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext, customSamplingContext: [Swift.String : Any]) -> any Sentry.Span + @discardableResult + @objc(captureError:) public static func capture(error: any Swift.Error) -> Sentry.SentryId + @discardableResult + @objc(captureError:withScope:) public static func capture(error: any Swift.Error, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureError:withScopeBlock:) public static func capture(error: any Swift.Error, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc(captureException:) public static func capture(exception: Foundation.NSException) -> Sentry.SentryId + @discardableResult + @objc(captureException:withScope:) public static func capture(exception: Foundation.NSException, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureException:withScopeBlock:) public static func capture(exception: Foundation.NSException, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:) public static func capture(message: Swift.String) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:withScope:) public static func capture(message: Swift.String, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:withScopeBlock:) public static func capture(message: Swift.String, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @available(*, deprecated, message: "Use SentrySDK.back or use or configure our new managed UX with SentryOptions.configureUserFeedback.") + @objc(captureUserFeedback:) public static func capture(userFeedback: Sentry.UserFeedback) + @objc(captureFeedback:) public static func capture(feedback: Sentry.SentryFeedback) + @available(iOS 13.0, *) + @objc public static let feedback: Sentry.SentryFeedbackAPI + @objc(addBreadcrumb:) public static func addBreadcrumb(_ crumb: Sentry.Breadcrumb) + @objc(configureScope:) public static func configureScope(_ callback: @escaping (Sentry.Scope) -> Swift.Void) + @objc public static var crashedLastRun: Swift.Bool { + @objc get + } + @objc public static var detectedStartUpCrash: Swift.Bool { + @objc get + } + @objc public static func setUser(_ user: Sentry.User?) + @objc public static func startSession() + @objc public static func endSession() + @objc public static func crash() + @objc public static func reportFullyDisplayed() + @objc public static func pauseAppHangTracking() + @objc public static func resumeAppHangTracking() + @objc(flush:) public static func flush(timeout: Foundation.TimeInterval) + @objc public static func close() + @objc public static func startProfiler() + @objc public static func stopProfiler() + @_spi(Private) @objc public static func clearLogger() + @objc override dynamic public init() + @objc deinit +} @_spi(Private) @available(iOS 15.0, macOS 12.0, macCatalyst 15.0, *) @available(tvOS, unavailable) @available(watchOS, unavailable) @@ -471,7 +614,7 @@ extension Sentry.SentryLevel : Swift.CustomStringConvertible { } @_spi(Private) @objc @_inheritsConvenienceInitializers @objcMembers public class SentryLevelHelper : ObjectiveC.NSObject { @_spi(Private) @objc public static func nameForLevel(_ level: Sentry.SentryLevel) -> Swift.String - @_spi(Private) @objc public static func levelForName(_ name: Swift.String) -> Sentry.SentryLevel + @_spi(Private) @objc public static func levelForName(_ name: Swift.String?) -> Sentry.SentryLevel @_spi(Private) @objc override dynamic public init() @_spi(Private) @objc deinit } @@ -534,6 +677,7 @@ extension Swift.FixedWidthInteger { @objc public var enableDataSwizzling: Swift.Bool @objc public var enableFileManagerSwizzling: Swift.Bool @objc public var enableUnhandledCPPExceptionsV2: Swift.Bool + @objc public var enableLogs: Swift.Bool @_spi(Private) @objc public func validateOptions(_ options: [Swift.String : Any]?) @objc override dynamic public init() @objc deinit @@ -574,6 +718,12 @@ extension Swift.FixedWidthInteger { @_spi(Private) @objc override dynamic public init() @_spi(Private) @objc deinit } +@_spi(Private) @_inheritsConvenienceInitializers @objc(SentryDependencies) final public class Dependencies : ObjectiveC.NSObject { + @_spi(Private) @objc public static let dispatchQueueWrapper: Sentry.SentryDispatchQueueWrapper + @_spi(Private) @objc public static let dateProvider: Sentry.SentryDefaultCurrentDateProvider + @_spi(Private) @objc override dynamic public init() + @_spi(Private) @objc deinit +} @_spi(Private) @objc @objcMembers public class SentryWatchdogTerminationAttributesProcessor : ObjectiveC.NSObject { @_spi(Private) @objc public init(withDispatchQueueWrapper dispatchQueueWrapper: Sentry.SentryDispatchQueueWrapper, scopePersistentStore: Sentry.SentryScopePersistentStore) @_spi(Private) @objc public func clear() @@ -672,6 +822,7 @@ extension Sentry.SentryNSError : Swift.Decodable { @_spi(Private) @objc func capture(feedback: Sentry.SentryFeedback) } @_spi(Private) @objc @available(iOS 13.0, *) +@available(iOSApplicationExtension, unavailable) @objcMembers public class SentryUserFeedbackIntegrationDriver : ObjectiveC.NSObject { @_spi(Private) @objc public init(configuration: Sentry.SentryUserFeedbackConfiguration, delegate: any Sentry.SentryUserFeedbackIntegrationDriverDelegate, screenshotProvider: Sentry.SentryScreenshot) @_spi(Private) @objc deinit @@ -679,6 +830,7 @@ extension Sentry.SentryNSError : Swift.Decodable { @_spi(Private) @objc public func hideWidget() } @_spi(Private) @available(iOS 13.0, *) +@available(iOSApplicationExtension, unavailable) extension Sentry.SentryUserFeedbackIntegrationDriver : UIKit.UIAdaptivePresentationControllerDelegate { @_spi(Private) @_Concurrency.MainActor(unsafe) @objc dynamic public func presentationControllerDidDismiss(_ presentationController: UIKit.UIPresentationController) } @@ -697,6 +849,46 @@ public enum SentryRedactRegionType : Swift.String, Swift.Codable { get } } +extension Sentry.SentryLog { + @objc(SentryStructuredLogLevel) public enum Level : Swift.Int { + case trace + case debug + case info + case warn + case error + case fatal + public init(value: Swift.String) throws + public var value: Swift.String { + get + } + public func toSeverityNumber() -> Swift.Int + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } + } +} +@_spi(Private) extension Sentry.SentryLog.Level : Swift.Codable { + @_spi(Private) public init(from decoder: any Swift.Decoder) throws + @_spi(Private) public func encode(to encoder: any Swift.Encoder) throws +} +extension Sentry.SentryLog { + @_hasMissingDesignatedInitializers @objc(SentryStructuredLogAttribute) @objcMembers final public class Attribute : ObjectiveC.NSObject { + @objc final public let type: Swift.String + @objc final public let value: Any + @objc public init(string value: Swift.String) + @objc public init(boolean value: Swift.Bool) + @objc public init(integer value: Swift.Int) + @objc public init(double value: Swift.Double) + @objc public init(float value: Swift.Float) + @objc deinit + } +} +@_spi(Private) extension Sentry.SentryLog.Attribute : Swift.Codable { + @_spi(Private) convenience public init(from decoder: any Swift.Decoder) throws + @_spi(Private) final public func encode(to encoder: any Swift.Encoder) throws +} @_spi(Private) @objc public class SentryScopePersistentStore : ObjectiveC.NSObject { @_spi(Private) @objc public init?(fileManager: (any Sentry.SentryFileManagerProtocol)?) @_spi(Private) @objc public func moveAllCurrentStateToPreviousState() @@ -783,8 +975,19 @@ extension Foundation.Data { @_spi(Private) @objc public func trackTouchFrom(event: UIKit.UIEvent) @_spi(Private) @objc deinit } +@_spi(Private) @objc public protocol SentryNSNotificationCenterWrapper { + @_spi(Private) @objc func addObserver(_ observer: Any, selector aSelector: ObjectiveC.Selector, name aName: Foundation.NSNotification.Name?, object anObject: Any?) + #if compiler(>=5.3) && $Sendable + @_spi(Private) @objc(addObserverForName:object:queue:usingBlock:) func addObserver(forName name: Foundation.NSNotification.Name?, object obj: Any?, queue: Foundation.OperationQueue?, using block: @escaping @Sendable (Foundation.Notification) -> Swift.Void) -> any ObjectiveC.NSObjectProtocol + #endif + @_spi(Private) @objc func removeObserver(_ observer: Any, name aName: Foundation.NSNotification.Name?, object anObject: Any?) + @_spi(Private) @objc(postNotification:) func post(_ notification: Foundation.Notification) +} +@_spi(Private) @objc extension Foundation.NotificationCenter : Sentry.SentryNSNotificationCenterWrapper { +} @_spi(Private) @objc @_inheritsConvenienceInitializers @objcMembers public class SentryEnabledFeaturesBuilder : ObjectiveC.NSObject { - @_spi(Private) @objc public static func getEnabledFeatures(options: Sentry.Options?) -> [Swift.String] + @_spi(Private) @objc @available(*, deprecated, message: "This is only marked as deprecated because enableAppLaunchProfiling is marked as deprecated. Once that is removed this can be removed.") + public static func getEnabledFeatures(options: Sentry.Options?) -> [Swift.String] @_spi(Private) @objc override dynamic public init() @_spi(Private) @objc deinit } @@ -808,6 +1011,7 @@ extension Foundation.Data { @_spi(Private) @objc public func dispatchSyncOnMainQueue(_ block: @escaping () -> Swift.Void, timeout: Swift.Double) @_spi(Private) @objc public func dispatch(after interval: Foundation.TimeInterval, block: @escaping () -> Swift.Void) @_spi(Private) @objc public func dispatchOnce(_ predicate: Swift.UnsafeMutablePointer, block: @escaping () -> Swift.Void) + @_spi(Private) public func dispatch(after interval: Foundation.TimeInterval, workItem: Dispatch.DispatchWorkItem) @_spi(Private) @objc public var shouldDispatchCancel: Swift.Bool { @_spi(Private) @objc get } @@ -832,6 +1036,11 @@ extension Foundation.Data { @_spi(Private) @objc public func createVideoWith(beginning: Foundation.Date, end: Foundation.Date) -> [Sentry.SentryVideoInfo] @_spi(Private) @objc deinit } +@_spi(Private) @objc @objcMembers public class SentryLogBatcher : ObjectiveC.NSObject { + @_spi(Private) @objc public init(client: Sentry.SentryClient, flushTimeout: Foundation.TimeInterval, maxBufferSizeBytes: Swift.Int, dispatchQueue: Sentry.SentryDispatchQueueWrapper) + @_spi(Private) @objc convenience public init(client: Sentry.SentryClient, dispatchQueue: Sentry.SentryDispatchQueueWrapper) + @_spi(Private) @objc deinit +} extension Sentry.DebugMeta : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } @@ -862,3 +1071,6 @@ extension Sentry.SentryLevel : Swift.RawRepresentable {} extension Sentry.SentryRedactRegionType : Swift.Equatable {} extension Sentry.SentryRedactRegionType : Swift.Hashable {} extension Sentry.SentryRedactRegionType : Swift.RawRepresentable {} +extension Sentry.SentryLog.Level : Swift.Equatable {} +extension Sentry.SentryLog.Level : Swift.Hashable {} +extension Sentry.SentryLog.Level : Swift.RawRepresentable {} diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftdoc b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftdoc index 5bf9a15..c9fae04 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftdoc and b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftdoc differ diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftinterface b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftinterface index 76c5efb..a354965 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftinterface +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/Sentry.swiftmodule/arm64e-apple-ios.swiftinterface @@ -1,14 +1,17 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) -// swift-module-flags: -target arm64e-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name Sentry +// swift-module-flags: -target arm64e-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name Sentry // swift-module-flags-ignorable: -enable-bare-slash-regex import AVFoundation import CoreGraphics import CoreMedia +import Darwin import Foundation +import MachO import MetricKit import ObjectiveC.NSObjCRuntime import ObjectiveC +import PDFKit @_exported import Sentry import Swift import UIKit @@ -37,6 +40,8 @@ extension Sentry.User : Swift.Decodable { @objc deinit } extension Sentry.SentryFeedback : Sentry.SentrySerializable { +} +extension Sentry.SentryFeedback { @objc dynamic public func serialize() -> [Swift.String : Any] } @objc(SentryEventDecodable) open class SentryEventDecodable : Sentry.Event, Swift.Decodable { @@ -56,6 +61,24 @@ extension Sentry.SentryFeedback : Sentry.SentrySerializable { @objc open func serialize() -> [Swift.String : Any] @objc deinit } +public struct SentryLogMessage : Swift.ExpressibleByStringInterpolation { + public init(stringLiteral value: Swift.String) + public init(stringInterpolation: Sentry.SentryLogMessage.StringInterpolation) + public struct StringInterpolation : Swift.StringInterpolationProtocol { + public init(literalCapacity: Swift.Int, interpolationCount: Swift.Int) + public mutating func appendLiteral(_ literal: Swift.String) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.String) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Bool) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Int) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Double) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> Swift.Float) + public mutating func appendInterpolation(_ value: @autoclosure @escaping () -> T) where T : Swift.CustomStringConvertible + public typealias StringLiteralType = Swift.String + } + public typealias ExtendedGraphemeClusterLiteralType = Swift.String + public typealias StringLiteralType = Swift.String + public typealias UnicodeScalarLiteralType = Swift.String +} extension Sentry.Frame : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } @@ -65,6 +88,15 @@ extension Sentry.SentryThread : Swift.Decodable { extension Sentry.Geo : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } +@_hasMissingDesignatedInitializers @objc @objcMembers final public class SentryLog : ObjectiveC.NSObject { + @objc final public var timestamp: Foundation.Date + @objc final public var traceId: Sentry.SentryId + @objc final public var level: Sentry.SentryLog.Level + @objc final public var body: Swift.String + @objc final public var attributes: [Swift.String : Sentry.SentryLog.Attribute] + @objc final public var severityNumber: Foundation.NSNumber? + @objc deinit +} extension Foundation.FileManager { public func createFileWithSentryTracing(atPath path: Swift.String, contents data: Foundation.Data?, attributes attr: [Foundation.FileAttributeKey : Any]? = nil) -> Swift.Bool public func removeItemWithSentryTracing(at url: Foundation.URL) throws @@ -74,6 +106,27 @@ extension Foundation.FileManager { public func moveItemWithSentryTracing(at srcURL: Foundation.URL, to dstURL: Foundation.URL) throws public func moveItemWithSentryTracing(atPath srcPath: Swift.String, toPath dstPath: Swift.String) throws } +@objc final public class SentryLogger : ObjectiveC.NSObject { + final public func trace(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(trace:) final public func trace(_ body: Swift.String) + @objc(trace:attributes:) final public func trace(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func debug(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(debug:) final public func debug(_ body: Swift.String) + @objc(debug:attributes:) final public func debug(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func info(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(info:) final public func info(_ body: Swift.String) + @objc(info:attributes:) final public func info(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func warn(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(warn:) final public func warn(_ body: Swift.String) + @objc(warn:attributes:) final public func warn(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func error(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(error:) final public func error(_ body: Swift.String) + @objc(error:attributes:) final public func error(_ body: Swift.String, attributes: [Swift.String : Any]) + final public func fatal(_ message: Sentry.SentryLogMessage, attributes: [Swift.String : Any] = [:]) + @objc(fatal:) final public func fatal(_ body: Swift.String) + @objc(fatal:attributes:) final public func fatal(_ body: Swift.String, attributes: [Swift.String : Any]) + @objc deinit +} extension Sentry.MechanismMeta : Swift.Decodable { required convenience public init(from decoder: any Swift.Decoder) throws } @@ -188,6 +241,84 @@ extension Sentry.SentryMessage : Swift.Decodable { } @objc deinit } +@_inheritsConvenienceInitializers @objc open class SentrySDK : ObjectiveC.NSObject { + @objc public static var span: (any Sentry.Span)? { + @objc get + } + @objc public static var isEnabled: Swift.Bool { + @objc get + } + @objc public static var replay: Sentry.SentryReplayApi { + @objc get + } + @objc public static var logger: Sentry.SentryLogger { + @objc get + } + @objc public static func start(options: Sentry.Options) + @objc public static func start(configureOptions: @escaping (Sentry.Options) -> Swift.Void) + @discardableResult + @objc(captureEvent:) public static func capture(event: Sentry.Event) -> Sentry.SentryId + @discardableResult + @objc(captureEvent:withScope:) public static func capture(event: Sentry.Event, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureEvent:withScopeBlock:) public static func capture(event: Sentry.Event, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc public static func startTransaction(name: Swift.String, operation: Swift.String) -> any Sentry.Span + @discardableResult + @objc public static func startTransaction(name: Swift.String, operation: Swift.String, bindToScope: Swift.Bool) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:bindToScope:) public static func startTransaction(transactionContext: Sentry.TransactionContext, bindToScope: Swift.Bool) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:bindToScope:customSamplingContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext, bindToScope: Swift.Bool, customSamplingContext: [Swift.String : Any]) -> any Sentry.Span + @discardableResult + @objc(startTransactionWithContext:customSamplingContext:) public static func startTransaction(transactionContext: Sentry.TransactionContext, customSamplingContext: [Swift.String : Any]) -> any Sentry.Span + @discardableResult + @objc(captureError:) public static func capture(error: any Swift.Error) -> Sentry.SentryId + @discardableResult + @objc(captureError:withScope:) public static func capture(error: any Swift.Error, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureError:withScopeBlock:) public static func capture(error: any Swift.Error, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc(captureException:) public static func capture(exception: Foundation.NSException) -> Sentry.SentryId + @discardableResult + @objc(captureException:withScope:) public static func capture(exception: Foundation.NSException, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureException:withScopeBlock:) public static func capture(exception: Foundation.NSException, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:) public static func capture(message: Swift.String) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:withScope:) public static func capture(message: Swift.String, scope: Sentry.Scope) -> Sentry.SentryId + @discardableResult + @objc(captureMessage:withScopeBlock:) public static func capture(message: Swift.String, block: @escaping (Sentry.Scope) -> Swift.Void) -> Sentry.SentryId + @available(*, deprecated, message: "Use SentrySDK.back or use or configure our new managed UX with SentryOptions.configureUserFeedback.") + @objc(captureUserFeedback:) public static func capture(userFeedback: Sentry.UserFeedback) + @objc(captureFeedback:) public static func capture(feedback: Sentry.SentryFeedback) + @available(iOS 13.0, *) + @objc public static let feedback: Sentry.SentryFeedbackAPI + @objc(addBreadcrumb:) public static func addBreadcrumb(_ crumb: Sentry.Breadcrumb) + @objc(configureScope:) public static func configureScope(_ callback: @escaping (Sentry.Scope) -> Swift.Void) + @objc public static var crashedLastRun: Swift.Bool { + @objc get + } + @objc public static var detectedStartUpCrash: Swift.Bool { + @objc get + } + @objc public static func setUser(_ user: Sentry.User?) + @objc public static func startSession() + @objc public static func endSession() + @objc public static func crash() + @objc public static func reportFullyDisplayed() + @objc public static func pauseAppHangTracking() + @objc public static func resumeAppHangTracking() + @objc(flush:) public static func flush(timeout: Foundation.TimeInterval) + @objc public static func close() + @objc public static func startProfiler() + @objc public static func stopProfiler() + @objc override dynamic public init() + @objc deinit +} @objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SentryRedactViewHelper : ObjectiveC.NSObject { @objc public static func clipOutView(_ view: UIKit.UIView) @objc public static func maskSwiftUI(_ view: UIKit.UIView) @@ -248,6 +379,7 @@ extension Swift.FixedWidthInteger { @objc public var enableDataSwizzling: Swift.Bool @objc public var enableFileManagerSwizzling: Swift.Bool @objc public var enableUnhandledCPPExceptionsV2: Swift.Bool + @objc public var enableLogs: Swift.Bool @objc override dynamic public init() @objc deinit } @@ -324,6 +456,38 @@ public enum SentryRedactRegionType : Swift.String, Swift.Codable { get } } +extension Sentry.SentryLog { + @objc(SentryStructuredLogLevel) public enum Level : Swift.Int { + case trace + case debug + case info + case warn + case error + case fatal + public init(value: Swift.String) throws + public var value: Swift.String { + get + } + public func toSeverityNumber() -> Swift.Int + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } + } +} +extension Sentry.SentryLog { + @_hasMissingDesignatedInitializers @objc(SentryStructuredLogAttribute) @objcMembers final public class Attribute : ObjectiveC.NSObject { + @objc final public let type: Swift.String + @objc final public let value: Any + @objc public init(string value: Swift.String) + @objc public init(boolean value: Swift.Bool) + @objc public init(integer value: Swift.Int) + @objc public init(double value: Swift.Double) + @objc public init(float value: Swift.Float) + @objc deinit + } +} extension Foundation.Data { public init(contentsOfWithSentryTracing url: Foundation.URL, options: Foundation.Data.ReadingOptions = []) throws public func writeWithSentryTracing(to url: Foundation.URL, options: Foundation.Data.WritingOptions = []) throws @@ -398,3 +562,6 @@ extension Sentry.SentryLevel : Swift.RawRepresentable {} extension Sentry.SentryRedactRegionType : Swift.Equatable {} extension Sentry.SentryRedactRegionType : Swift.Hashable {} extension Sentry.SentryRedactRegionType : Swift.RawRepresentable {} +extension Sentry.SentryLog.Level : Swift.Equatable {} +extension Sentry.SentryLog.Level : Swift.Hashable {} +extension Sentry.SentryLog.Level : Swift.RawRepresentable {} diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/module.modulemap b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/module.modulemap index 41cbf2c..0d932c4 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/module.modulemap +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Modules/module.modulemap @@ -17,7 +17,7 @@ framework module Sentry { header "SentryEnvelopeItemType.h" header "SentryFormatter.h" header "SentryFramesTracker.h" - header "SentryOptions+HybridSDKs.h" + header "SentryOptionsInternal.h" header "SentryScreenFrames.h" header "SentrySwizzle.h" header "SentryUser+Private.h" diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/PrivateSentrySDKOnly.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/PrivateSentrySDKOnly.h index 9b501ec..e2e6bdc 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/PrivateSentrySDKOnly.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/PrivateSentrySDKOnly.h @@ -56,6 +56,7 @@ typedef void (^SentryOnAppStartMeasurementAvailable)( */ + (nullable SentryEnvelope *)envelopeWithData:(NSData *)data; +#if !SDK_V9 /** * Returns the current list of debug images. Be aware that the @c SentryDebugMeta is actually * describing a debug image. @@ -73,6 +74,7 @@ typedef void (^SentryOnAppStartMeasurementAvailable)( * crash, each image's data section crash info is also included. */ + (NSArray *)getDebugImagesCrashed:(BOOL)isCrash; +#endif // !SDK_V9 /** * Override SDK information. @@ -186,7 +188,7 @@ typedef void (^SentryOnAppStartMeasurementAvailable)( /** * Allow Hybrids SDKs to set the current Screen. */ -+ (void)setCurrentScreen:(NSString *)screenName; ++ (void)setCurrentScreen:(NSString *_Nullable)screenName; #endif // SENTRY_UIKIT_AVAILABLE diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryBinaryImageCache.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryBinaryImageCache.h index d555c2e..e4f7b05 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryBinaryImageCache.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryBinaryImageCache.h @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SentryBinaryImageCache : NSObject -- (void)start; +- (void)start:(BOOL)isDebug; - (void)stop; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryDebugImageProvider+HybridSDKs.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryDebugImageProvider+HybridSDKs.h index 242e198..7934680 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryDebugImageProvider+HybridSDKs.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryDebugImageProvider+HybridSDKs.h @@ -4,13 +4,21 @@ # import "SentryDebugImageProvider.h" #endif +#import + @class SentryDebugMeta; @class SentryThread; @class SentryFrame; NS_ASSUME_NONNULL_BEGIN +#if SDK_V9 +@interface SentryDebugImageProvider : NSObject +#else @interface SentryDebugImageProvider () +#endif + +- (instancetype)init; /** * Returns a list of debug images that are being referenced by the given frames. diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryDependencyContainer.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryDependencyContainer.h index 927b1cc..e199c28 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryDependencyContainer.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryDependencyContainer.h @@ -13,7 +13,6 @@ @class SentryDispatchQueueWrapper; @class SentryExtraContextProvider; @class SentryFileManager; -@class SentryNSNotificationCenterWrapper; @class SentryNSProcessInfoWrapper; @class SentryNSTimerFactory; @class SentrySwizzleWrapper; @@ -33,6 +32,8 @@ @protocol SentryRateLimits; @protocol SentryApplication; @protocol SentryDispatchQueueProviderProtocol; +@protocol SentryNSNotificationCenterWrapper; +@protocol SentryObjCRuntimeWrapper; #if SENTRY_HAS_METRIC_KIT @class SentryMXManager; @@ -87,7 +88,7 @@ SENTRY_NO_INIT @property (nonatomic, strong) SentryBinaryImageCache *binaryImageCache; @property (nonatomic, strong) id dateProvider; @property (nonatomic, strong) SentryExtraContextProvider *extraContextProvider; -@property (nonatomic, strong) SentryNSNotificationCenterWrapper *notificationCenterWrapper; +@property (nonatomic, strong) id notificationCenterWrapper; @property (nonatomic, strong) SentryCrashWrapper *crashWrapper; @property (nonatomic, strong) SentryNSProcessInfoWrapper *processInfoWrapper; @property (nonatomic, strong) SentrySysctl *sysctlWrapper; @@ -117,9 +118,10 @@ SENTRY_NO_INIT - (id)getANRTracker:(NSTimeInterval)timeout isV2Enabled:(BOOL)isV2Enabled; #endif // SENTRY_HAS_UIKIT +#if SENTRY_TARGET_PROFILING_SUPPORTED @property (nonatomic, strong) SentrySystemWrapper *systemWrapper; +#endif // SENTRY_TARGET_PROFILING_SUPPORTED @property (nonatomic, strong) SentryDispatchFactory *dispatchFactory; -@property (nonatomic, strong) id dispatchQueueProvider; @property (nonatomic, strong) SentryNSTimerFactory *timerFactory; @property (nonatomic, strong) SentrySwizzleWrapper *swizzleWrapper; @@ -135,6 +137,7 @@ SENTRY_NO_INIT @property (nonatomic, strong) SentryMXManager *metricKitManager API_AVAILABLE( ios(15.0), macos(12.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos); #endif // SENTRY_HAS_METRIC_KIT +@property (nonatomic, strong) id objcRuntimeWrapper; #if SENTRY_HAS_UIKIT - (SentryWatchdogTerminationScopeObserver *)getWatchdogTerminationScopeObserverWithOptions: diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryEnvelope.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryEnvelope.h index 4b8af99..689f09e 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryEnvelope.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryEnvelope.h @@ -4,18 +4,7 @@ # import "PrivatesHeader.h" #endif -#if COCOAPODS @class SentrySdkInfo; -#else - -# if __has_include() -# import -# else -# import "SentrySdkInfo.h" -# endif - -#endif - @class SentryAttachment; @class SentryEnvelopeItemHeader; @class SentryEvent; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryEnvelopeItemType.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryEnvelopeItemType.h index 24d150a..4775ab4 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryEnvelopeItemType.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryEnvelopeItemType.h @@ -16,3 +16,4 @@ static NSString *const SentryEnvelopeItemTypeProfile = @"profile"; static NSString *const SentryEnvelopeItemTypeReplayVideo = @"replay_video"; static NSString *const SentryEnvelopeItemTypeStatsd = @"statsd"; static NSString *const SentryEnvelopeItemTypeProfileChunk = @"profile_chunk"; +static NSString *const SentryEnvelopeItemTypeLog = @"log"; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryFramesTracker.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryFramesTracker.h index 54468a5..3fb476f 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryFramesTracker.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryFramesTracker.h @@ -15,7 +15,7 @@ @class SentryDisplayLinkWrapper; @protocol SentryCurrentDateProvider; @class SentryDispatchQueueWrapper; -@class SentryNSNotificationCenterWrapper; +@protocol SentryNSNotificationCenterWrapper; @class SentryScreenFrames; @class SentryFramesDelayResult; @@ -43,7 +43,7 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithDisplayLinkWrapper:(SentryDisplayLinkWrapper *)displayLinkWrapper dateProvider:(id)dateProvider dispatchQueueWrapper:(SentryDispatchQueueWrapper *)dispatchQueueWrapper - notificationCenter:(SentryNSNotificationCenterWrapper *)notificationCenter + notificationCenter:(id)notificationCenter keepDelayedFramesDuration:(CFTimeInterval)keepDelayedFramesDuration; - (SentryScreenFrames *)currentFrames; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptions+HybridSDKs.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptions+HybridSDKs.h deleted file mode 100644 index 9709ca7..0000000 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptions+HybridSDKs.h +++ /dev/null @@ -1,16 +0,0 @@ -#if __has_include() -# import -#else -# import "SentryOptions.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface SentryOptions () - -- (_Nullable instancetype)initWithDict:(NSDictionary *)options - didFailWithError:(NSError *_Nullable *_Nullable)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptions+Private.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptions+Private.h index 58219cd..741ead6 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptions+Private.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptions+Private.h @@ -11,13 +11,42 @@ FOUNDATION_EXPORT NSString *const kSentryDefaultEnvironment; @interface SentryOptions () #if SENTRY_TARGET_PROFILING_SUPPORTED @property (nonatomic, assign) BOOL enableProfiling_DEPRECATED_TEST_ONLY; + +# if !SDK_V9 +/** + * If continuous profiling mode v1 ("beta") is enabled. + * @note Not for use with launch profiles. See functions in @c SentryLaunchProfiling . + */ - (BOOL)isContinuousProfilingEnabled; +# endif // !SDK_V9 + +/** + * If UI profiling mode ("continuous v2") is enabled. + * @note Not for use with launch profiles. See functions in @c SentryLaunchProfiling . + */ - (BOOL)isContinuousProfilingV2Enabled; + +/** + * Whether or not the SDK was configured with a profile mode that automatically starts and tracks + * profiles with traces. + * @note Not for use with launch profiles. See functions in @c SentryLaunchProfiling . + */ - (BOOL)isProfilingCorrelatedToTraces; + +/** + * UI Profiling options set on SDK start. + * @note Not for use with launch profiles. See functions in @c SentryLaunchProfiling . + */ @property (nonatomic, nullable, strong) SentryProfileOptions *profiling; #endif // SENTRY_TARGET_PROFILING_SUPPORTED -@property (nonatomic, readonly, class) NSArray *defaultIntegrationClasses; +#if SENTRY_TARGET_REPLAY_SUPPORTED + +- (BOOL)enableViewRendererV2; + +- (BOOL)enableFastViewRendering; + +#endif // # SENTRY_TARGET_REPLAY_SUPPORTED @property (nonatomic, strong, nullable) SentryUserFeedbackConfiguration *userFeedbackConfiguration API_AVAILABLE(ios(13.0)); diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptionsInternal.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptionsInternal.h new file mode 100644 index 0000000..205f320 --- /dev/null +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentryOptionsInternal.h @@ -0,0 +1,16 @@ +#import + +@class SentryOptions; + +NS_ASSUME_NONNULL_BEGIN + +@interface SentryOptionsInternal : NSObject + +@property (nonatomic, readonly, class) NSArray *defaultIntegrationClasses; + ++ (nullable SentryOptions *)initWithDict:(NSDictionary *)options + didFailWithError:(NSError *_Nullable *_Nullable)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentrySDK+Private.h b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentrySDK+Private.h index 011dfa6..b360f4e 100644 --- a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentrySDK+Private.h +++ b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/PrivateHeaders/SentrySDK+Private.h @@ -4,10 +4,10 @@ # import "SentryProfilingConditionals.h" #endif -#if __has_include() -# import +#if __has_include() +# import #else -# import "SentrySDK.h" +# import "SentrySDKInternal.h" #endif @class SentryAppStartMeasurement; @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface SentrySDK () +@interface SentrySDKInternal () + (void)captureFatalEvent:(SentryEvent *)event; diff --git a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Sentry b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Sentry index 76255c0..fa3ed37 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Sentry and b/Plugins/Sentry/Source/ThirdParty/IOS/Sentry.framework/Sentry differ diff --git a/Plugins/Sentry/Source/ThirdParty/Linux/include/sentry.h b/Plugins/Sentry/Source/ThirdParty/Linux/include/sentry.h index 00c275e..9a7ada8 100644 --- a/Plugins/Sentry/Source/ThirdParty/Linux/include/sentry.h +++ b/Plugins/Sentry/Source/ThirdParty/Linux/include/sentry.h @@ -36,8 +36,8 @@ extern "C" { /* common platform detection */ #ifdef _WIN32 # define SENTRY_PLATFORM_WINDOWS -# ifdef _GAMING_XBOX_SCARLETT -# define SENTRY_PLATFORM_XBOX_SCARLETT +# ifdef _GAMING_XBOX +# define SENTRY_PLATFORM_XBOX # endif #elif defined(__APPLE__) # include @@ -72,13 +72,13 @@ extern "C" { #ifndef SENTRY_SDK_NAME # if defined(SENTRY_PLATFORM_ANDROID) # define SENTRY_SDK_NAME "sentry.native.android" -# elif defined(SENTRY_PLATFORM_XBOX_SCARLETT) +# elif defined(SENTRY_PLATFORM_XBOX) # define SENTRY_SDK_NAME "sentry.native.xbox" # else # define SENTRY_SDK_NAME "sentry.native" # endif #endif -#define SENTRY_SDK_VERSION "0.9.1" +#define SENTRY_SDK_VERSION "0.10.1" #define SENTRY_SDK_USER_AGENT SENTRY_SDK_NAME "/" SENTRY_SDK_VERSION /* marks a function as part of the sentry API */ @@ -100,6 +100,40 @@ extern "C" { # endif #endif +#ifdef __has_attribute +# if __has_attribute(deprecated) +# define SENTRY_DEPRECATED(msg) __attribute__((deprecated(msg))) +# endif +#endif +#ifndef SENTRY_DEPRECATED +# if defined(__GNUC__) \ + && (__GNUC__ > 4 \ + || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) /* GCC 4.5 */ +# define SENTRY_DEPRECATED(msg) __attribute__((deprecated(msg))) +# elif defined(__clang__) && __clang__major__ >= 3 /* Clang 3.0 */ +# define SENTRY_DEPRECATED(msg) __attribute__((deprecated(msg))) +# elif defined(_MSC_VER) && _MSC_VER >= 1400 /* VS 2005 (8.0) */ +# define SENTRY_DEPRECATED(msg) __declspec(deprecated(msg)) +# else +# define SENTRY_DEPRECATED(msg) +# endif +#endif + +#if defined(__GNUC__) || defined(__clang__) +# define SENTRY_SUPPRESS_DEPRECATED \ + _Pragma("GCC diagnostic push"); \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +# define SENTRY_RESTORE_DEPRECATED _Pragma("GCC diagnostic pop") +#elif defined(_MSC_VER) +# define SENTRY_SUPPRESS_DEPRECATED \ + __pragma(warning(push)); \ + __pragma(warning(disable : 4996)) +# define SENTRY_RESTORE_DEPRECATED __pragma(warning(pop)) +#else +# define SENTRY_SUPPRESS_DEPRECATED +# define SENTRY_RESTORE_DEPRECATED +#endif + /* marks a function as experimental api */ #ifndef SENTRY_EXPERIMENTAL_API # define SENTRY_EXPERIMENTAL_API SENTRY_API @@ -153,6 +187,8 @@ typedef enum { SENTRY_VALUE_TYPE_NULL, SENTRY_VALUE_TYPE_BOOL, SENTRY_VALUE_TYPE_INT32, + SENTRY_VALUE_TYPE_INT64, + SENTRY_VALUE_TYPE_UINT64, SENTRY_VALUE_TYPE_DOUBLE, SENTRY_VALUE_TYPE_STRING, SENTRY_VALUE_TYPE_LIST, @@ -216,6 +252,16 @@ SENTRY_API sentry_value_t sentry_value_new_null(void); */ SENTRY_API sentry_value_t sentry_value_new_int32(int32_t value); +/** + * Creates a new 64-bit signed integer value. + */ +SENTRY_API sentry_value_t sentry_value_new_int64(int64_t value); + +/** + * Creates a new 64-bit unsigned integer value. + */ +SENTRY_API sentry_value_t sentry_value_new_uint64(uint64_t value); + /** * Creates a new double value. */ @@ -354,6 +400,16 @@ SENTRY_API size_t sentry_value_get_length(sentry_value_t value); */ SENTRY_API int32_t sentry_value_as_int32(sentry_value_t value); +/** + * Converts a value into a 64-bit signed integer. + */ +SENTRY_API int64_t sentry_value_as_int64(sentry_value_t value); + +/** + * Converts a value into a 64-bit unsigned integer. + */ +SENTRY_API uint64_t sentry_value_as_uint64(sentry_value_t value); + /** * Converts a value into a double value. */ @@ -378,7 +434,7 @@ SENTRY_API int sentry_value_is_null(sentry_value_t value); * Serialize a sentry value to JSON. * * The string is freshly allocated and must be freed with - * `sentry_string_free`. + * `sentry_free`. */ SENTRY_API char *sentry_value_to_json(sentry_value_t value); @@ -505,7 +561,7 @@ SENTRY_EXPERIMENTAL_API void sentry_event_add_thread( * Serialize a sentry value to msgpack. * * The string is freshly allocated and must be freed with - * `sentry_string_free`. Since msgpack is not zero terminated + * `sentry_free`. Since msgpack is not zero terminated * the size is written to the `size_out` parameter. */ SENTRY_EXPERIMENTAL_API char *sentry_value_to_msgpack( @@ -515,13 +571,13 @@ SENTRY_EXPERIMENTAL_API char *sentry_value_to_msgpack( * Adds a stack trace to an event. * * The stack trace is added as part of a new thread object. - * This function is **deprecated** in favor of using - * `sentry_value_new_stacktrace` in combination with `sentry_value_new_thread` - * and `sentry_event_add_thread`. * * If `ips` is NULL the current stack trace is captured, otherwise `len` * stack trace instruction pointers are attached to the event. */ +SENTRY_DEPRECATED( + "Use `sentry_value_new_stacktrace` in combination with " + "`sentry_value_new_thread` and `sentry_event_add_thread` instead") SENTRY_EXPERIMENTAL_API void sentry_event_value_add_stacktrace( sentry_value_t event, void **ips, size_t len); @@ -628,6 +684,16 @@ typedef struct sentry_envelope_s sentry_envelope_t; */ SENTRY_API void sentry_envelope_free(sentry_envelope_t *envelope); +/** + * Given an Envelope, returns the header if present. + * + * This returns a borrowed value to the headers in the Envelope. + */ +SENTRY_API sentry_value_t sentry_envelope_get_header( + const sentry_envelope_t *envelope, const char *key); +SENTRY_API sentry_value_t sentry_envelope_get_header_n( + const sentry_envelope_t *envelope, const char *key, size_t key_len); + /** * Given an Envelope, returns the embedded Event if there is one. * @@ -647,7 +713,7 @@ SENTRY_EXPERIMENTAL_API sentry_value_t sentry_envelope_get_transaction( /** * Serializes the envelope. * - * The return value needs to be freed with sentry_string_free(). + * The return value needs to be freed with `sentry_free`. */ SENTRY_API char *sentry_envelope_serialize( const sentry_envelope_t *envelope, size_t *size_out); @@ -664,6 +730,44 @@ SENTRY_API int sentry_envelope_write_to_file( SENTRY_API int sentry_envelope_write_to_file_n( const sentry_envelope_t *envelope, const char *path, size_t path_len); +/** + * De-serializes an envelope. + * + * The return value needs to be freed with sentry_envelope_free(). + * + * Returns NULL on failure. + */ +SENTRY_API sentry_envelope_t *sentry_envelope_deserialize( + const char *buf, size_t buf_len); + +/** + * De-serializes an envelope from a file. + * + * `path` is assumed to be in platform-specific filesystem path encoding. + * + * API Users on windows are encouraged to use `sentry_envelope_read_from_filew` + * instead. + */ +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_file(const char *path); +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_file_n( + const char *path, size_t path_len); + +#ifdef SENTRY_PLATFORM_WINDOWS +/** + * Wide char versions of `sentry_envelope_read_from_file` and + * `sentry_envelope_read_from_file_n`. + */ +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_filew( + const wchar_t *path); +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_filew_n( + const wchar_t *path, size_t path_len); +#endif + +/** + * Submits an envelope, first checking for consent. + */ +SENTRY_API void sentry_capture_envelope(sentry_envelope_t *envelope); + /** * The Sentry Client Options. * @@ -772,11 +876,8 @@ SENTRY_API void sentry_transport_free(sentry_transport_t *transport); * It is a convenience function which works with a borrowed `data`, and will * automatically free the envelope, so the user provided function does not need * to do that. - * - * This function is *deprecated* and will be removed in a future version. - * It is here for backwards compatibility. Users should migrate to the - * `sentry_transport_new` API. */ +SENTRY_DEPRECATED("Use `sentry_transport_new` instead") SENTRY_API sentry_transport_t *sentry_new_function_transport( void (*func)(const sentry_envelope_t *envelope, void *data), void *data); @@ -1053,13 +1154,13 @@ SENTRY_API const char *sentry_options_get_proxy(const sentry_options_t *opts); /** * Configures the proxy. * - * This is a **deprecated** alias for `sentry_options_set_proxy(_n)`. - * * The given proxy has to include the full scheme, * eg. `http://some.proxy/. */ +SENTRY_DEPRECATED("Use `sentry_options_set_proxy` instead") SENTRY_API void sentry_options_set_http_proxy( sentry_options_t *opts, const char *proxy); +SENTRY_DEPRECATED("Use `sentry_options_set_proxy_n` instead") SENTRY_API void sentry_options_set_http_proxy_n( sentry_options_t *opts, const char *proxy, size_t proxy_len); @@ -1450,7 +1551,7 @@ SENTRY_API int sentry_flush(uint64_t timeout); /** * Shuts down the sentry client and forces transports to flush out. * - * Returns 0 on success. + * Returns the number of envelopes that have been dumped. * * Note that this does not uninstall any crash handler installed by our * backends, which will still process crashes after `sentry_close()`, except @@ -1465,10 +1566,9 @@ SENTRY_API int sentry_close(void); /** * Shuts down the sentry client and forces transports to flush out. * - * This is a **deprecated** alias for `sentry_close`. - * - * Returns 0 on success. + * Returns the number of envelopes that have been dumped. */ +SENTRY_DEPRECATED("Use `sentry_close` instead") SENTRY_API int sentry_shutdown(void); /** @@ -1690,13 +1790,31 @@ SENTRY_API void sentry_remove_fingerprint(void); /** * Set the trace. The primary use for this is to allow other SDKs to propagate - * their trace context to connect events on all layers + * their trace context to connect events on all layers. + * + * Once a trace is managed by the downstream SDK using this function, + * transactions no longer act as automatic trace boundaries. */ SENTRY_API void sentry_set_trace( const char *trace_id, const char *parent_span_id); SENTRY_API void sentry_set_trace_n(const char *trace_id, size_t trace_id_len, const char *parent_span_id, size_t parent_span_id_len); +/** + * Generates a new random `trace_id` and `span_id` and sets these onto + * the propagation context. Use this to set a trace boundary for + * events/transactions. + * + * Once you regenerate a trace manually, transactions no longer act as automatic + * trace boundaries. This means all following transactions will be part of the + * same trace until you regenerate the trace again. + * + * We urge you not to use this function if you use the Native SDK in the context + * of a downstream SDK like Android, .NET, Unity or Unreal, because it will + * interfere with cross-SDK traces which are managed by these SDKs. + */ +SENTRY_EXPERIMENTAL_API void sentry_regenerate_trace(void); + /** * Sets the transaction. */ @@ -1856,6 +1974,11 @@ SENTRY_API sentry_attachment_t *sentry_scope_attach_bytes_n( sentry_scope_t *scope, const char *buf, size_t buf_len, const char *filename, size_t filename_len); +/** + * Removes and frees all previously added attachments. + */ +SENTRY_API void sentry_clear_attachments(void); + /** * Removes and frees a previously added attachment. * @@ -2407,25 +2530,48 @@ SENTRY_EXPERIMENTAL_API void sentry_transaction_set_name_n( sentry_transaction_t *transaction, const char *name, size_t name_len); /** - * Creates a new User Feedback with a specific name, email and comments. - * - * See https://develop.sentry.dev/sdk/envelopes/#user-feedback + * Creates a deprecated User Report with a specific name, email and comments. * - * User Feedback has to be associated with a specific event that has been - * sent to Sentry earlier. + * See + * https://develop.sentry.dev/sdk/data-model/envelope-items/#user-report---deprecated */ +SENTRY_DEPRECATED("Use `sentry_value_new_feedback` instead") SENTRY_API sentry_value_t sentry_value_new_user_feedback( const sentry_uuid_t *uuid, const char *name, const char *email, const char *comments); +SENTRY_DEPRECATED("Use `sentry_value_new_feedback_n` instead") SENTRY_API sentry_value_t sentry_value_new_user_feedback_n( const sentry_uuid_t *uuid, const char *name, size_t name_len, const char *email, size_t email_len, const char *comments, size_t comments_len); +/** + * Captures a deprecated User Report and sends it to Sentry. + */ +SENTRY_DEPRECATED("Use `sentry_capture_feedback` instead") +SENTRY_API void sentry_capture_user_feedback(sentry_value_t user_report); + +/** + * Creates a new User Feedback with a specific message (required), and optional + * contact_email, name, message, and associated_event_id. + * + * See https://develop.sentry.dev/sdk/data-model/envelope-items/#user-feedback + * + * User Feedback can be associated with a specific event that has been + * sent to Sentry earlier. + */ +SENTRY_API sentry_value_t sentry_value_new_feedback(const char *message, + const char *contact_email, const char *name, + const sentry_uuid_t *associated_event_id); +SENTRY_API sentry_value_t sentry_value_new_feedback_n(const char *message, + size_t message_len, const char *contact_email, size_t contact_email_len, + const char *name, size_t name_len, + const sentry_uuid_t *associated_event_id); + /** * Captures a manually created User Feedback and sends it to Sentry. */ -SENTRY_API void sentry_capture_user_feedback(sentry_value_t user_feedback); +SENTRY_API void sentry_capture_feedback(sentry_value_t user_feedback); /** * The status of a Span or Transaction. @@ -2561,14 +2707,14 @@ SENTRY_EXPERIMENTAL_API const char *sentry_sdk_version(void); /** * Sentry SDK name set during build time. - * Deprecated: Please use sentry_options_get_sdk_name instead. */ +SENTRY_DEPRECATED("Use `sentry_options_get_sdk_name` instead") SENTRY_EXPERIMENTAL_API const char *sentry_sdk_name(void); /** * Sentry SDK User-Agent set during build time. - * Deprecated: Please use sentry_options_get_user_agent instead. */ +SENTRY_DEPRECATED("Use `sentry_options_get_user_agent` instead") SENTRY_EXPERIMENTAL_API const char *sentry_sdk_user_agent(void); #ifdef __cplusplus diff --git a/Plugins/Sentry/Source/ThirdParty/Linux/lib/libsentry.a b/Plugins/Sentry/Source/ThirdParty/Linux/lib/libsentry.a index 00899bf..300feaf 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Linux/lib/libsentry.a and b/Plugins/Sentry/Source/ThirdParty/Linux/lib/libsentry.a differ diff --git a/Plugins/Sentry/Source/ThirdParty/LinuxArm64/include/sentry.h b/Plugins/Sentry/Source/ThirdParty/LinuxArm64/include/sentry.h index 00c275e..9a7ada8 100644 --- a/Plugins/Sentry/Source/ThirdParty/LinuxArm64/include/sentry.h +++ b/Plugins/Sentry/Source/ThirdParty/LinuxArm64/include/sentry.h @@ -36,8 +36,8 @@ extern "C" { /* common platform detection */ #ifdef _WIN32 # define SENTRY_PLATFORM_WINDOWS -# ifdef _GAMING_XBOX_SCARLETT -# define SENTRY_PLATFORM_XBOX_SCARLETT +# ifdef _GAMING_XBOX +# define SENTRY_PLATFORM_XBOX # endif #elif defined(__APPLE__) # include @@ -72,13 +72,13 @@ extern "C" { #ifndef SENTRY_SDK_NAME # if defined(SENTRY_PLATFORM_ANDROID) # define SENTRY_SDK_NAME "sentry.native.android" -# elif defined(SENTRY_PLATFORM_XBOX_SCARLETT) +# elif defined(SENTRY_PLATFORM_XBOX) # define SENTRY_SDK_NAME "sentry.native.xbox" # else # define SENTRY_SDK_NAME "sentry.native" # endif #endif -#define SENTRY_SDK_VERSION "0.9.1" +#define SENTRY_SDK_VERSION "0.10.1" #define SENTRY_SDK_USER_AGENT SENTRY_SDK_NAME "/" SENTRY_SDK_VERSION /* marks a function as part of the sentry API */ @@ -100,6 +100,40 @@ extern "C" { # endif #endif +#ifdef __has_attribute +# if __has_attribute(deprecated) +# define SENTRY_DEPRECATED(msg) __attribute__((deprecated(msg))) +# endif +#endif +#ifndef SENTRY_DEPRECATED +# if defined(__GNUC__) \ + && (__GNUC__ > 4 \ + || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) /* GCC 4.5 */ +# define SENTRY_DEPRECATED(msg) __attribute__((deprecated(msg))) +# elif defined(__clang__) && __clang__major__ >= 3 /* Clang 3.0 */ +# define SENTRY_DEPRECATED(msg) __attribute__((deprecated(msg))) +# elif defined(_MSC_VER) && _MSC_VER >= 1400 /* VS 2005 (8.0) */ +# define SENTRY_DEPRECATED(msg) __declspec(deprecated(msg)) +# else +# define SENTRY_DEPRECATED(msg) +# endif +#endif + +#if defined(__GNUC__) || defined(__clang__) +# define SENTRY_SUPPRESS_DEPRECATED \ + _Pragma("GCC diagnostic push"); \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +# define SENTRY_RESTORE_DEPRECATED _Pragma("GCC diagnostic pop") +#elif defined(_MSC_VER) +# define SENTRY_SUPPRESS_DEPRECATED \ + __pragma(warning(push)); \ + __pragma(warning(disable : 4996)) +# define SENTRY_RESTORE_DEPRECATED __pragma(warning(pop)) +#else +# define SENTRY_SUPPRESS_DEPRECATED +# define SENTRY_RESTORE_DEPRECATED +#endif + /* marks a function as experimental api */ #ifndef SENTRY_EXPERIMENTAL_API # define SENTRY_EXPERIMENTAL_API SENTRY_API @@ -153,6 +187,8 @@ typedef enum { SENTRY_VALUE_TYPE_NULL, SENTRY_VALUE_TYPE_BOOL, SENTRY_VALUE_TYPE_INT32, + SENTRY_VALUE_TYPE_INT64, + SENTRY_VALUE_TYPE_UINT64, SENTRY_VALUE_TYPE_DOUBLE, SENTRY_VALUE_TYPE_STRING, SENTRY_VALUE_TYPE_LIST, @@ -216,6 +252,16 @@ SENTRY_API sentry_value_t sentry_value_new_null(void); */ SENTRY_API sentry_value_t sentry_value_new_int32(int32_t value); +/** + * Creates a new 64-bit signed integer value. + */ +SENTRY_API sentry_value_t sentry_value_new_int64(int64_t value); + +/** + * Creates a new 64-bit unsigned integer value. + */ +SENTRY_API sentry_value_t sentry_value_new_uint64(uint64_t value); + /** * Creates a new double value. */ @@ -354,6 +400,16 @@ SENTRY_API size_t sentry_value_get_length(sentry_value_t value); */ SENTRY_API int32_t sentry_value_as_int32(sentry_value_t value); +/** + * Converts a value into a 64-bit signed integer. + */ +SENTRY_API int64_t sentry_value_as_int64(sentry_value_t value); + +/** + * Converts a value into a 64-bit unsigned integer. + */ +SENTRY_API uint64_t sentry_value_as_uint64(sentry_value_t value); + /** * Converts a value into a double value. */ @@ -378,7 +434,7 @@ SENTRY_API int sentry_value_is_null(sentry_value_t value); * Serialize a sentry value to JSON. * * The string is freshly allocated and must be freed with - * `sentry_string_free`. + * `sentry_free`. */ SENTRY_API char *sentry_value_to_json(sentry_value_t value); @@ -505,7 +561,7 @@ SENTRY_EXPERIMENTAL_API void sentry_event_add_thread( * Serialize a sentry value to msgpack. * * The string is freshly allocated and must be freed with - * `sentry_string_free`. Since msgpack is not zero terminated + * `sentry_free`. Since msgpack is not zero terminated * the size is written to the `size_out` parameter. */ SENTRY_EXPERIMENTAL_API char *sentry_value_to_msgpack( @@ -515,13 +571,13 @@ SENTRY_EXPERIMENTAL_API char *sentry_value_to_msgpack( * Adds a stack trace to an event. * * The stack trace is added as part of a new thread object. - * This function is **deprecated** in favor of using - * `sentry_value_new_stacktrace` in combination with `sentry_value_new_thread` - * and `sentry_event_add_thread`. * * If `ips` is NULL the current stack trace is captured, otherwise `len` * stack trace instruction pointers are attached to the event. */ +SENTRY_DEPRECATED( + "Use `sentry_value_new_stacktrace` in combination with " + "`sentry_value_new_thread` and `sentry_event_add_thread` instead") SENTRY_EXPERIMENTAL_API void sentry_event_value_add_stacktrace( sentry_value_t event, void **ips, size_t len); @@ -628,6 +684,16 @@ typedef struct sentry_envelope_s sentry_envelope_t; */ SENTRY_API void sentry_envelope_free(sentry_envelope_t *envelope); +/** + * Given an Envelope, returns the header if present. + * + * This returns a borrowed value to the headers in the Envelope. + */ +SENTRY_API sentry_value_t sentry_envelope_get_header( + const sentry_envelope_t *envelope, const char *key); +SENTRY_API sentry_value_t sentry_envelope_get_header_n( + const sentry_envelope_t *envelope, const char *key, size_t key_len); + /** * Given an Envelope, returns the embedded Event if there is one. * @@ -647,7 +713,7 @@ SENTRY_EXPERIMENTAL_API sentry_value_t sentry_envelope_get_transaction( /** * Serializes the envelope. * - * The return value needs to be freed with sentry_string_free(). + * The return value needs to be freed with `sentry_free`. */ SENTRY_API char *sentry_envelope_serialize( const sentry_envelope_t *envelope, size_t *size_out); @@ -664,6 +730,44 @@ SENTRY_API int sentry_envelope_write_to_file( SENTRY_API int sentry_envelope_write_to_file_n( const sentry_envelope_t *envelope, const char *path, size_t path_len); +/** + * De-serializes an envelope. + * + * The return value needs to be freed with sentry_envelope_free(). + * + * Returns NULL on failure. + */ +SENTRY_API sentry_envelope_t *sentry_envelope_deserialize( + const char *buf, size_t buf_len); + +/** + * De-serializes an envelope from a file. + * + * `path` is assumed to be in platform-specific filesystem path encoding. + * + * API Users on windows are encouraged to use `sentry_envelope_read_from_filew` + * instead. + */ +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_file(const char *path); +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_file_n( + const char *path, size_t path_len); + +#ifdef SENTRY_PLATFORM_WINDOWS +/** + * Wide char versions of `sentry_envelope_read_from_file` and + * `sentry_envelope_read_from_file_n`. + */ +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_filew( + const wchar_t *path); +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_filew_n( + const wchar_t *path, size_t path_len); +#endif + +/** + * Submits an envelope, first checking for consent. + */ +SENTRY_API void sentry_capture_envelope(sentry_envelope_t *envelope); + /** * The Sentry Client Options. * @@ -772,11 +876,8 @@ SENTRY_API void sentry_transport_free(sentry_transport_t *transport); * It is a convenience function which works with a borrowed `data`, and will * automatically free the envelope, so the user provided function does not need * to do that. - * - * This function is *deprecated* and will be removed in a future version. - * It is here for backwards compatibility. Users should migrate to the - * `sentry_transport_new` API. */ +SENTRY_DEPRECATED("Use `sentry_transport_new` instead") SENTRY_API sentry_transport_t *sentry_new_function_transport( void (*func)(const sentry_envelope_t *envelope, void *data), void *data); @@ -1053,13 +1154,13 @@ SENTRY_API const char *sentry_options_get_proxy(const sentry_options_t *opts); /** * Configures the proxy. * - * This is a **deprecated** alias for `sentry_options_set_proxy(_n)`. - * * The given proxy has to include the full scheme, * eg. `http://some.proxy/. */ +SENTRY_DEPRECATED("Use `sentry_options_set_proxy` instead") SENTRY_API void sentry_options_set_http_proxy( sentry_options_t *opts, const char *proxy); +SENTRY_DEPRECATED("Use `sentry_options_set_proxy_n` instead") SENTRY_API void sentry_options_set_http_proxy_n( sentry_options_t *opts, const char *proxy, size_t proxy_len); @@ -1450,7 +1551,7 @@ SENTRY_API int sentry_flush(uint64_t timeout); /** * Shuts down the sentry client and forces transports to flush out. * - * Returns 0 on success. + * Returns the number of envelopes that have been dumped. * * Note that this does not uninstall any crash handler installed by our * backends, which will still process crashes after `sentry_close()`, except @@ -1465,10 +1566,9 @@ SENTRY_API int sentry_close(void); /** * Shuts down the sentry client and forces transports to flush out. * - * This is a **deprecated** alias for `sentry_close`. - * - * Returns 0 on success. + * Returns the number of envelopes that have been dumped. */ +SENTRY_DEPRECATED("Use `sentry_close` instead") SENTRY_API int sentry_shutdown(void); /** @@ -1690,13 +1790,31 @@ SENTRY_API void sentry_remove_fingerprint(void); /** * Set the trace. The primary use for this is to allow other SDKs to propagate - * their trace context to connect events on all layers + * their trace context to connect events on all layers. + * + * Once a trace is managed by the downstream SDK using this function, + * transactions no longer act as automatic trace boundaries. */ SENTRY_API void sentry_set_trace( const char *trace_id, const char *parent_span_id); SENTRY_API void sentry_set_trace_n(const char *trace_id, size_t trace_id_len, const char *parent_span_id, size_t parent_span_id_len); +/** + * Generates a new random `trace_id` and `span_id` and sets these onto + * the propagation context. Use this to set a trace boundary for + * events/transactions. + * + * Once you regenerate a trace manually, transactions no longer act as automatic + * trace boundaries. This means all following transactions will be part of the + * same trace until you regenerate the trace again. + * + * We urge you not to use this function if you use the Native SDK in the context + * of a downstream SDK like Android, .NET, Unity or Unreal, because it will + * interfere with cross-SDK traces which are managed by these SDKs. + */ +SENTRY_EXPERIMENTAL_API void sentry_regenerate_trace(void); + /** * Sets the transaction. */ @@ -1856,6 +1974,11 @@ SENTRY_API sentry_attachment_t *sentry_scope_attach_bytes_n( sentry_scope_t *scope, const char *buf, size_t buf_len, const char *filename, size_t filename_len); +/** + * Removes and frees all previously added attachments. + */ +SENTRY_API void sentry_clear_attachments(void); + /** * Removes and frees a previously added attachment. * @@ -2407,25 +2530,48 @@ SENTRY_EXPERIMENTAL_API void sentry_transaction_set_name_n( sentry_transaction_t *transaction, const char *name, size_t name_len); /** - * Creates a new User Feedback with a specific name, email and comments. - * - * See https://develop.sentry.dev/sdk/envelopes/#user-feedback + * Creates a deprecated User Report with a specific name, email and comments. * - * User Feedback has to be associated with a specific event that has been - * sent to Sentry earlier. + * See + * https://develop.sentry.dev/sdk/data-model/envelope-items/#user-report---deprecated */ +SENTRY_DEPRECATED("Use `sentry_value_new_feedback` instead") SENTRY_API sentry_value_t sentry_value_new_user_feedback( const sentry_uuid_t *uuid, const char *name, const char *email, const char *comments); +SENTRY_DEPRECATED("Use `sentry_value_new_feedback_n` instead") SENTRY_API sentry_value_t sentry_value_new_user_feedback_n( const sentry_uuid_t *uuid, const char *name, size_t name_len, const char *email, size_t email_len, const char *comments, size_t comments_len); +/** + * Captures a deprecated User Report and sends it to Sentry. + */ +SENTRY_DEPRECATED("Use `sentry_capture_feedback` instead") +SENTRY_API void sentry_capture_user_feedback(sentry_value_t user_report); + +/** + * Creates a new User Feedback with a specific message (required), and optional + * contact_email, name, message, and associated_event_id. + * + * See https://develop.sentry.dev/sdk/data-model/envelope-items/#user-feedback + * + * User Feedback can be associated with a specific event that has been + * sent to Sentry earlier. + */ +SENTRY_API sentry_value_t sentry_value_new_feedback(const char *message, + const char *contact_email, const char *name, + const sentry_uuid_t *associated_event_id); +SENTRY_API sentry_value_t sentry_value_new_feedback_n(const char *message, + size_t message_len, const char *contact_email, size_t contact_email_len, + const char *name, size_t name_len, + const sentry_uuid_t *associated_event_id); + /** * Captures a manually created User Feedback and sends it to Sentry. */ -SENTRY_API void sentry_capture_user_feedback(sentry_value_t user_feedback); +SENTRY_API void sentry_capture_feedback(sentry_value_t user_feedback); /** * The status of a Span or Transaction. @@ -2561,14 +2707,14 @@ SENTRY_EXPERIMENTAL_API const char *sentry_sdk_version(void); /** * Sentry SDK name set during build time. - * Deprecated: Please use sentry_options_get_sdk_name instead. */ +SENTRY_DEPRECATED("Use `sentry_options_get_sdk_name` instead") SENTRY_EXPERIMENTAL_API const char *sentry_sdk_name(void); /** * Sentry SDK User-Agent set during build time. - * Deprecated: Please use sentry_options_get_user_agent instead. */ +SENTRY_DEPRECATED("Use `sentry_options_get_user_agent` instead") SENTRY_EXPERIMENTAL_API const char *sentry_sdk_user_agent(void); #ifdef __cplusplus diff --git a/Plugins/Sentry/Source/ThirdParty/LinuxArm64/lib/libsentry.a b/Plugins/Sentry/Source/ThirdParty/LinuxArm64/lib/libsentry.a index a0be7ac..d0bbdca 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/LinuxArm64/lib/libsentry.a and b/Plugins/Sentry/Source/ThirdParty/LinuxArm64/lib/libsentry.a differ diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/bin/sentry.dylib b/Plugins/Sentry/Source/ThirdParty/Mac/bin/sentry.dylib index ea1a41d..3524bd9 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Mac/bin/sentry.dylib and b/Plugins/Sentry/Source/ThirdParty/Mac/bin/sentry.dylib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/PrivateSentrySDKOnly.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/PrivateSentrySDKOnly.h index 9b501ec..e2e6bdc 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/PrivateSentrySDKOnly.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/PrivateSentrySDKOnly.h @@ -56,6 +56,7 @@ typedef void (^SentryOnAppStartMeasurementAvailable)( */ + (nullable SentryEnvelope *)envelopeWithData:(NSData *)data; +#if !SDK_V9 /** * Returns the current list of debug images. Be aware that the @c SentryDebugMeta is actually * describing a debug image. @@ -73,6 +74,7 @@ typedef void (^SentryOnAppStartMeasurementAvailable)( * crash, each image's data section crash info is also included. */ + (NSArray *)getDebugImagesCrashed:(BOOL)isCrash; +#endif // !SDK_V9 /** * Override SDK information. @@ -186,7 +188,7 @@ typedef void (^SentryOnAppStartMeasurementAvailable)( /** * Allow Hybrids SDKs to set the current Screen. */ -+ (void)setCurrentScreen:(NSString *)screenName; ++ (void)setCurrentScreen:(NSString *_Nullable)screenName; #endif // SENTRY_UIKIT_AVAILABLE diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/Sentry-Swift.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/Sentry-Swift.h index 1cd8fad..562f22e 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/Sentry-Swift.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/Sentry-Swift.h @@ -307,6 +307,19 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +@class SentryDispatchQueueWrapper; +@class SentryDefaultCurrentDateProvider; + +SWIFT_CLASS_NAMED("Dependencies") +@interface SentryDependencies : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDispatchQueueWrapper * _Nonnull dispatchQueueWrapper;) ++ (SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDefaultCurrentDateProvider * _Nonnull dateProvider;) ++ (SentryDefaultCurrentDateProvider * _Nonnull)dateProvider SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + @@ -318,10 +331,34 @@ SWIFT_CLASS("_TtC6Sentry19HTTPHeaderSanitizer") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +@class NSNumber; + +SWIFT_CLASS("_TtC6Sentry13LoadValidator") +@interface LoadValidator : NSObject ++ (void)checkForDuplicatedSDKWithImageName:(NSString * _Nonnull)imageName imageAddress:(NSNumber * _Nonnull)imageAddress imageSize:(NSNumber * _Nonnull)imageSize dispatchQueueWrapper:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +@class NSOperationQueue; +@class NSNotification; +@protocol NSObject; + +SWIFT_PROTOCOL("_TtP6Sentry33SentryNSNotificationCenterWrapper_") +@protocol SentryNSNotificationCenterWrapper +- (void)addObserver:(id _Nonnull)observer selector:(SEL _Nonnull)aSelector name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (id _Nonnull)addObserverForName:(NSNotificationName _Nullable)name object:(id _Nullable)obj queue:(NSOperationQueue * _Nullable)queue usingBlock:(void (^ _Nonnull)(NSNotification * _Nonnull))block SWIFT_WARN_UNUSED_RESULT; +- (void)removeObserver:(id _Nonnull)observer name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (void)postNotification:(NSNotification * _Nonnull)notification; +@end + + +@interface NSNotificationCenter (SWIFT_EXTENSION(Sentry)) +@end + @class SentryExperimentalOptions; @interface SentryOptions (SWIFT_EXTENSION(Sentry)) @@ -428,30 +465,17 @@ SWIFT_CLASS("_TtC6Sentry26SentryDispatchQueueWrapper") SWIFT_CLASS("_TtC6Sentry28SentryEnabledFeaturesBuilder") @interface SentryEnabledFeaturesBuilder : NSObject -+ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT; ++ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT SWIFT_DEPRECATED_MSG("This is only marked as deprecated because enableAppLaunchProfiling is marked as deprecated. Once that is removed this can be removed."); - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -/// Subclass of SentryEvent so we can add the Decodable implementation via a Swift extension. We need -/// this due to our mixed use of public Swift and ObjC classes. We could avoid this class by -/// converting SentryReplayEvent back to ObjC, but we rather accept this tradeoff as we want to -/// convert all public classes to Swift in the future. This does not need to be public, but was previously -/// defined in objc and was public. In the next major version of the SDK we should make it internal and final -/// and remove the @objc annotation. -/// @note: We can’t add the extension for Decodable directly on SentryEvent, because we get an error -/// in SentryReplayEvent: ‘required’ initializer ‘init(from:)’ must be provided by subclass of -/// ‘Event’ Once we add the initializer with required convenience public init(from decoder: any -/// Decoder) throws { fatalError(“init(from:) has not been implemented”) -/// } -/// we get the error initializer ‘init(from:)’ is declared in extension of ‘Event’ and cannot be -/// overridden. Therefore, we add the Decodable implementation not on the Event, but to a subclass of -/// the event. SWIFT_CLASS_NAMED("SentryEventDecodable") @interface SentryEventDecodable : SentryEvent - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end + @class NSData; SWIFT_CLASS("_TtC6Sentry18SentryEventDecoder") @@ -484,6 +508,8 @@ SWIFT_CLASS("_TtC6Sentry25SentryExperimentalOptions") /// experiment: /// This is an experimental feature and is therefore disabled by default. We’ll enable it by default in a future major release. @property (nonatomic) BOOL enableUnhandledCPPExceptionsV2; +/// Logs are considered beta. +@property (nonatomic) BOOL enableLogs; - (void)validateOptions:(NSDictionary * _Nullable)options; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end @@ -519,7 +545,6 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @interface SentryFeedback (SWIFT_EXTENSION(Sentry)) -- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; @end @class SentryAttachment; @@ -531,6 +556,11 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @end +@interface SentryFeedback (SWIFT_EXTENSION(Sentry)) +- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; +@end + + SWIFT_CLASS("_TtC6Sentry18SentryFileContents") @interface SentryFileContents : NSObject @property (nonatomic, readonly, copy) NSString * _Nonnull path; @@ -587,6 +617,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryId * _ @property (nonatomic, readonly) NSUInteger hash; @end + typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { kSentryLevelNone SWIFT_COMPILE_NAME("none") = 0, kSentryLevelDebug SWIFT_COMPILE_NAME("debug") = 1, @@ -600,11 +631,168 @@ typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { SWIFT_CLASS("_TtC6Sentry17SentryLevelHelper") @interface SentryLevelHelper : NSObject + (NSString * _Nonnull)nameForLevel:(enum SentryLevel)level SWIFT_WARN_UNUSED_RESULT; -+ (enum SentryLevel)levelForName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT; ++ (enum SentryLevel)levelForName:(NSString * _Nullable)name SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +enum SentryStructuredLogLevel : NSInteger; +@class SentryStructuredLogAttribute; + +/// A structured log entry that captures log data with associated attribute metadata. +/// Use the options.beforeSendLog callback to modify or filter log data. +SWIFT_CLASS("_TtC6Sentry9SentryLog") +@interface SentryLog : NSObject +/// The timestamp when the log event occurred +@property (nonatomic, copy) NSDate * _Nonnull timestamp; +/// The trace ID to associate this log with distributed tracing +@property (nonatomic, strong) SentryId * _Nonnull traceId; +/// The severity level of the log entry +@property (nonatomic) enum SentryStructuredLogLevel level; +/// The main log message content +@property (nonatomic, copy) NSString * _Nonnull body; +/// A dictionary of structured attributes added to the log entry +@property (nonatomic, copy) NSDictionary * _Nonnull attributes; +/// Numeric representation of the severity level (Int) +@property (nonatomic, strong) NSNumber * _Nullable severityNumber; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + + +/// A typed attribute that can be attached to structured log entries. +/// Attribute provides a type-safe way to store structured data alongside log messages. +/// Supports String, Bool, Int, and Double types. +SWIFT_CLASS_NAMED("Attribute") +@interface SentryStructuredLogAttribute : NSObject +/// The type identifier for this attribute (“string”, “boolean”, “integer”, “double”) +@property (nonatomic, readonly, copy) NSString * _Nonnull type; +/// The actual value stored in this attribute +@property (nonatomic, readonly) id _Nonnull value; +- (nonnull instancetype)initWithString:(NSString * _Nonnull)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithBoolean:(BOOL)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithInteger:(NSInteger)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithDouble:(double)value OBJC_DESIGNATED_INITIALIZER; +/// Creates a double attribute from a float value +- (nonnull instancetype)initWithFloat:(float)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + +/// Represents the severity level of a structured log entry. +/// Log levels are ordered by severity from least (trace) to most severe (fatal). +/// Each level corresponds to a numeric severity value following the OpenTelemetry specification. +typedef SWIFT_ENUM_NAMED(NSInteger, SentryStructuredLogLevel, "Level", open) { + SentryStructuredLogLevelTrace = 0, + SentryStructuredLogLevelDebug = 1, + SentryStructuredLogLevelInfo = 2, + SentryStructuredLogLevelWarn = 3, + SentryStructuredLogLevelError = 4, + SentryStructuredLogLevelFatal = 5, +}; + + +@class SentryClient; + +SWIFT_CLASS("_TtC6Sentry16SentryLogBatcher") +@interface SentryLogBatcher : NSObject +/// Initializes a new SentryLogBatcher. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param flushTimeout The timeout interval after which buffered logs will be flushed +/// +/// \param maxBufferSizeBytes The maximum buffer size in bytes before triggering an immediate flush +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client flushTimeout:(NSTimeInterval)flushTimeout maxBufferSizeBytes:(NSInteger)maxBufferSizeBytes dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue OBJC_DESIGNATED_INITIALIZER; +/// Convenience initializer with default flush timeout and buffer size. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +/// EXPERIMENTAL - A structured logging API for Sentry. +/// SentryLogger provides a structured logging interface that captures log entries +/// and sends them to Sentry. Supports multiple log levels (trace, debug, info, warn, +/// error, fatal) and allows attaching arbitrary attributes for enhanced context. +///

Supported Attribute Types

+/// note: +/// Sentry Logs is currently in Beta. See the Sentry Logs Documentation. +/// warning: +/// This API is experimental and subject to change without notice. +///
    +///
  • +/// String, Bool, Int, Double +///
  • +///
  • +/// Float (converted to Double) +///
  • +///
  • +/// Other types (converted to string) +///
  • +///
+///

Usage

+/// \code +/// let logger = SentrySDK.logger +/// logger.info("User logged in", attributes: ["userId": "12345"]) +/// logger.error("Payment failed", attributes: ["errorCode": 500]) +/// +/// // Structured string interpolation with automatic type detection +/// logger.info("User \(userId) processed \(count) items with \(percentage)% success") +/// logger.debug("Processing \(itemCount) items, active: \(isActive)") +/// logger.warn("Retry attempt \(currentAttempt) of \(maxAttempts) failed") +/// +/// \endcode +SWIFT_CLASS("_TtC6Sentry12SentryLogger") +@interface SentryLogger : NSObject +/// Logs a trace-level message. +- (void)trace:(NSString * _Nonnull)body; +/// Logs a trace-level message with additional attributes. +- (void)trace:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a debug-level message. +- (void)debug:(NSString * _Nonnull)body; +/// Logs a debug-level message with additional attributes. +- (void)debug:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an info-level message. +- (void)info:(NSString * _Nonnull)body; +/// Logs an info-level message with additional attributes. +- (void)info:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a warning-level message. +- (void)warn:(NSString * _Nonnull)body; +/// Logs a warning-level message with additional attributes. +- (void)warn:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an error-level message. +- (void)error:(NSString * _Nonnull)body; +/// Logs an error-level message with additional attributes. +- (void)error:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a fatal-level message. +- (void)fatal:(NSString * _Nonnull)body; +/// Logs a fatal-level message with additional attributes. +- (void)fatal:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + @class SentryMXFrame; SWIFT_CLASS("_TtC6Sentry17SentryMXCallStack") @@ -666,6 +854,7 @@ SWIFT_PROTOCOL("_TtP6Sentry23SentryMXManagerDelegate_") SWIFT_AVAILABILITY(watch + enum SentryProfileLifecycle : NSInteger; /// An object containing configuration for the Sentry profiler. @@ -772,6 +961,7 @@ SWIFT_PROTOCOL_NAMED("SentryRRWebEventProtocol") SWIFT_CLASS("_TtC6Sentry16SentryRRWebEvent") @interface SentryRRWebEvent : NSObject +@property (nonatomic, readonly, copy) NSDictionary * _Nullable data; - (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @@ -1017,6 +1207,333 @@ typedef SWIFT_ENUM(NSInteger, SentryReplayType, open) { }; +@protocol SentrySpan; +@class SentryScope; +@class SentryTransactionContext; +@class NSException; +@class SentryUserFeedback; +@class SentryUser; + +/// The main entry point for the Sentry SDK. +/// We recommend using start(configureOptions:) to initialize Sentry. +SWIFT_CLASS("_TtC6Sentry9SentrySDK") +@interface SentrySDK : NSObject +/// The current active transaction or span bound to the scope. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) id _Nullable span;) ++ (id _Nullable)span SWIFT_WARN_UNUSED_RESULT; +/// Indicates whether the Sentry SDK is enabled. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL isEnabled;) ++ (BOOL)isEnabled SWIFT_WARN_UNUSED_RESULT; +/// API to access Sentry logs +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryLogger * _Nonnull logger;) ++ (SentryLogger * _Nonnull)logger SWIFT_WARN_UNUSED_RESULT; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithOptions:(SentryOptions * _Nonnull)options; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithConfigureOptions:(void (^ _Nonnull)(SentryOptions * _Nonnull))configureOptions; +/// Captures a manually created event and sends it to Sentry. +/// \param event The event to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event; +/// Captures a manually created event and sends it to Sentry. Only the data in this scope object will +/// be added to the event. The global scope will be ignored. +/// \param event The event to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScope:(SentryScope * _Nonnull)scope; +/// Captures a manually created event and sends it to Sentry. Maintains the global scope but mutates +/// scope data for only this call. +/// \param event The event to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Captures an error event and sends it to Sentry. +/// \param error The error to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error; +/// Captures an error event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param error The error to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScope:(SentryScope * _Nonnull)scope; +/// Captures an error event and sends it to Sentry. Maintains the global scope but mutates scope data +/// for only this call. +/// \param error The error to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures an exception event and sends it to Sentry. +/// \param exception The exception to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception; +/// Captures an exception event and sends it to Sentry. Only the data in this scope object will be +/// added to the event. The global scope will be ignored. +/// \param exception The exception to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScope:(SentryScope * _Nonnull)scope; +/// Captures an exception event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param exception The exception to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures a message event and sends it to Sentry. +/// \param message The message to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message; +/// Captures a message event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param message The message to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScope:(SentryScope * _Nonnull)scope; +/// Captures a message event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param message The message to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// \param userFeedback The user feedback to send to Sentry. +/// ++ (void)captureUserFeedback:(SentryUserFeedback * _Nonnull)userFeedback SWIFT_DEPRECATED_MSG("Use SentrySDK.back or use or configure our new managed UX with SentryOptions.configureUserFeedback."); +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// warning: +/// This is an experimental feature and may still have bugs. +/// note: +/// If you’d prefer not to have to build the UI required to gather the feedback from the user, +/// see SentryOptions.configureUserFeedback to customize a fully managed integration. See +/// https://docs.sentry.io/platforms/apple/user-feedback/ for more information. +/// \param feedback The feedback to send to Sentry. +/// ++ (void)captureFeedback:(SentryFeedback * _Nonnull)feedback; +/// Adds a Breadcrumb to the current Scope of the current Hub. If the total number of breadcrumbs +/// exceeds the SentryOptions.maxBreadcrumbs the SDK removes the oldest breadcrumb. +/// \param crumb The Breadcrumb to add to the current Scope of the current Hub. +/// ++ (void)addBreadcrumb:(SentryBreadcrumb * _Nonnull)crumb; +/// Use this method to modify the current Scope of the current Hub. The SDK uses the Scope to attach +/// contextual data to events. +/// \param callback The callback for configuring the current Scope of the current Hub. +/// ++ (void)configureScope:(void (^ _Nonnull)(SentryScope * _Nonnull))callback; +/// Checks if the last program execution terminated with a crash. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL crashedLastRun;) ++ (BOOL)crashedLastRun SWIFT_WARN_UNUSED_RESULT; +/// Checks if the SDK detected a start-up crash during SDK initialization. +/// note: +/// The SDK init waits synchronously for up to 5 seconds to flush out events if the app crashes +/// within 2 seconds after the SDK init. +/// +/// returns: +/// true if the SDK detected a start-up crash and false if not. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL detectedStartUpCrash;) ++ (BOOL)detectedStartUpCrash SWIFT_WARN_UNUSED_RESULT; +/// Set user to the current Scope of the current Hub. +/// note: +/// You must start the SDK before calling this method, otherwise it doesn’t set the user. +/// \param user The user to set to the current Scope. +/// ++ (void)setUser:(SentryUser * _Nullable)user; +/// Starts a new SentrySession. If there’s a running SentrySession, it ends it before starting the +/// new one. You can use this method in combination with endSession to manually track +/// sessions. The SDK uses SentrySession to inform Sentry about release and project +/// associated project health. ++ (void)startSession; +/// Ends the current SentrySession. You can use this method in combination with startSession to +/// manually track SentrySessions. The SDK uses SentrySession to inform Sentry about release and +/// project associated project health. ++ (void)endSession; +/// This forces a crash, useful to test the SentryCrash integration. +/// note: +/// The SDK can’t report a crash when a debugger is attached. Your application needs to run +/// without a debugger attached to capture the crash and send it to Sentry the next time you launch +/// your application. ++ (void)crash; +/// Reports to the ongoing UIViewController transaction +/// that the screen contents are fully loaded and displayed, +/// which will create a new span. +/// seealso: +/// +/// https://docs.sentry.io/platforms/cocoa/performance/instrumentation/automatic-instrumentation/#time-to-full-display ++ (void)reportFullyDisplayed; +/// Pauses sending detected app hangs to Sentry. +/// This method doesn’t close the detection of app hangs. Instead, the app hang detection +/// will ignore detected app hangs until you call resumeAppHangTracking. ++ (void)pauseAppHangTracking; +/// Resumes sending detected app hangs to Sentry. ++ (void)resumeAppHangTracking; +/// Waits synchronously for the SDK to flush out all queued and cached items for up to the specified +/// timeout in seconds. If there is no internet connection, the function returns immediately. The SDK +/// doesn’t dispose the client or the hub. +/// note: +/// This might take slightly longer than the specified timeout if there are many batched logs to capture. +/// \param timeout The time to wait for the SDK to complete the flush. +/// ++ (void)flush:(NSTimeInterval)timeout; +/// Closes the SDK, uninstalls all the integrations, and calls flush with +/// SentryOptions.shutdownTimeInterval. ++ (void)close; +/// Start a new continuous profiling session if one is not already running. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Unlike transaction-based profiling, continuous profiling does not take into account +/// SentryOptions.profilesSampleRate or SentryOptions.profilesSampler. If either of those +/// options are set, this method does nothing. +/// note: +/// Taking into account the above note, if SentryOptions.configureProfiling is not set, +/// calls to this method will always start a profile if one is not already running. This includes app +/// launch profiles configured with SentryOptions.enableAppLaunchProfiling. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if the profiling +/// session is not sampled with respect to SentryOptions.profileSessionSampleRate, or if it is +/// sampled but the profiler is already running. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if +/// SentryOptions.profileLifecycle is set to trace. In this scenario, the profiler is +/// automatically started and stopped depending on whether there is an active sampled span, so it is +/// not permitted to manually start profiling. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)startProfiler; +/// Stop a continuous profiling session if there is one ongoing. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Does nothing if SentryOptions.profileLifecycle is set to trace. +/// note: +/// Does not immediately stop the profiler. Profiling data is uploaded at regular timed +/// intervals; when the current interval completes, then the profiler stops and the data gathered +/// during that last interval is uploaded. +/// note: +/// If a new call to startProfiler that would start the profiler is made before the last +/// interval completes, the profiler will continue running until another call to stop is made. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)stopProfiler; +/// note: +/// Conceptually internal but needs to be marked public with SPI for ObjC visibility ++ (void)clearLogger; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + /// A note on the thread safety: /// The methods configure and log don’t use synchronization mechanisms, meaning they aren’t strictly speaking thread-safe. @@ -1055,7 +1572,6 @@ SWIFT_CLASS("_TtC6Sentry34SentrySRDefaultBreadcrumbConverter") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -@class SentryUser; SWIFT_CLASS("_TtC6Sentry26SentryScopePersistentStore") @interface SentryScopePersistentStore : NSObject @@ -1520,6 +2036,19 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +@class SentryDispatchQueueWrapper; +@class SentryDefaultCurrentDateProvider; + +SWIFT_CLASS_NAMED("Dependencies") +@interface SentryDependencies : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDispatchQueueWrapper * _Nonnull dispatchQueueWrapper;) ++ (SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDefaultCurrentDateProvider * _Nonnull dateProvider;) ++ (SentryDefaultCurrentDateProvider * _Nonnull)dateProvider SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + @@ -1531,10 +2060,34 @@ SWIFT_CLASS("_TtC6Sentry19HTTPHeaderSanitizer") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +@class NSNumber; +SWIFT_CLASS("_TtC6Sentry13LoadValidator") +@interface LoadValidator : NSObject ++ (void)checkForDuplicatedSDKWithImageName:(NSString * _Nonnull)imageName imageAddress:(NSNumber * _Nonnull)imageAddress imageSize:(NSNumber * _Nonnull)imageSize dispatchQueueWrapper:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + +@class NSOperationQueue; +@class NSNotification; +@protocol NSObject; + +SWIFT_PROTOCOL("_TtP6Sentry33SentryNSNotificationCenterWrapper_") +@protocol SentryNSNotificationCenterWrapper +- (void)addObserver:(id _Nonnull)observer selector:(SEL _Nonnull)aSelector name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (id _Nonnull)addObserverForName:(NSNotificationName _Nullable)name object:(id _Nullable)obj queue:(NSOperationQueue * _Nullable)queue usingBlock:(void (^ _Nonnull)(NSNotification * _Nonnull))block SWIFT_WARN_UNUSED_RESULT; +- (void)removeObserver:(id _Nonnull)observer name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (void)postNotification:(NSNotification * _Nonnull)notification; +@end + + +@interface NSNotificationCenter (SWIFT_EXTENSION(Sentry)) +@end + @class SentryExperimentalOptions; @interface SentryOptions (SWIFT_EXTENSION(Sentry)) @@ -1641,30 +2194,17 @@ SWIFT_CLASS("_TtC6Sentry26SentryDispatchQueueWrapper") SWIFT_CLASS("_TtC6Sentry28SentryEnabledFeaturesBuilder") @interface SentryEnabledFeaturesBuilder : NSObject -+ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT; ++ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT SWIFT_DEPRECATED_MSG("This is only marked as deprecated because enableAppLaunchProfiling is marked as deprecated. Once that is removed this can be removed."); - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -/// Subclass of SentryEvent so we can add the Decodable implementation via a Swift extension. We need -/// this due to our mixed use of public Swift and ObjC classes. We could avoid this class by -/// converting SentryReplayEvent back to ObjC, but we rather accept this tradeoff as we want to -/// convert all public classes to Swift in the future. This does not need to be public, but was previously -/// defined in objc and was public. In the next major version of the SDK we should make it internal and final -/// and remove the @objc annotation. -/// @note: We can’t add the extension for Decodable directly on SentryEvent, because we get an error -/// in SentryReplayEvent: ‘required’ initializer ‘init(from:)’ must be provided by subclass of -/// ‘Event’ Once we add the initializer with required convenience public init(from decoder: any -/// Decoder) throws { fatalError(“init(from:) has not been implemented”) -/// } -/// we get the error initializer ‘init(from:)’ is declared in extension of ‘Event’ and cannot be -/// overridden. Therefore, we add the Decodable implementation not on the Event, but to a subclass of -/// the event. SWIFT_CLASS_NAMED("SentryEventDecodable") @interface SentryEventDecodable : SentryEvent - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end + @class NSData; SWIFT_CLASS("_TtC6Sentry18SentryEventDecoder") @@ -1697,6 +2237,8 @@ SWIFT_CLASS("_TtC6Sentry25SentryExperimentalOptions") /// experiment: /// This is an experimental feature and is therefore disabled by default. We’ll enable it by default in a future major release. @property (nonatomic) BOOL enableUnhandledCPPExceptionsV2; +/// Logs are considered beta. +@property (nonatomic) BOOL enableLogs; - (void)validateOptions:(NSDictionary * _Nullable)options; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end @@ -1732,7 +2274,6 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @interface SentryFeedback (SWIFT_EXTENSION(Sentry)) -- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; @end @class SentryAttachment; @@ -1744,6 +2285,11 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @end +@interface SentryFeedback (SWIFT_EXTENSION(Sentry)) +- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; +@end + + SWIFT_CLASS("_TtC6Sentry18SentryFileContents") @interface SentryFileContents : NSObject @property (nonatomic, readonly, copy) NSString * _Nonnull path; @@ -1800,6 +2346,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryId * _ @property (nonatomic, readonly) NSUInteger hash; @end + typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { kSentryLevelNone SWIFT_COMPILE_NAME("none") = 0, kSentryLevelDebug SWIFT_COMPILE_NAME("debug") = 1, @@ -1813,11 +2360,168 @@ typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { SWIFT_CLASS("_TtC6Sentry17SentryLevelHelper") @interface SentryLevelHelper : NSObject + (NSString * _Nonnull)nameForLevel:(enum SentryLevel)level SWIFT_WARN_UNUSED_RESULT; -+ (enum SentryLevel)levelForName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT; ++ (enum SentryLevel)levelForName:(NSString * _Nullable)name SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +enum SentryStructuredLogLevel : NSInteger; +@class SentryStructuredLogAttribute; + +/// A structured log entry that captures log data with associated attribute metadata. +/// Use the options.beforeSendLog callback to modify or filter log data. +SWIFT_CLASS("_TtC6Sentry9SentryLog") +@interface SentryLog : NSObject +/// The timestamp when the log event occurred +@property (nonatomic, copy) NSDate * _Nonnull timestamp; +/// The trace ID to associate this log with distributed tracing +@property (nonatomic, strong) SentryId * _Nonnull traceId; +/// The severity level of the log entry +@property (nonatomic) enum SentryStructuredLogLevel level; +/// The main log message content +@property (nonatomic, copy) NSString * _Nonnull body; +/// A dictionary of structured attributes added to the log entry +@property (nonatomic, copy) NSDictionary * _Nonnull attributes; +/// Numeric representation of the severity level (Int) +@property (nonatomic, strong) NSNumber * _Nullable severityNumber; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + + +/// A typed attribute that can be attached to structured log entries. +/// Attribute provides a type-safe way to store structured data alongside log messages. +/// Supports String, Bool, Int, and Double types. +SWIFT_CLASS_NAMED("Attribute") +@interface SentryStructuredLogAttribute : NSObject +/// The type identifier for this attribute (“string”, “boolean”, “integer”, “double”) +@property (nonatomic, readonly, copy) NSString * _Nonnull type; +/// The actual value stored in this attribute +@property (nonatomic, readonly) id _Nonnull value; +- (nonnull instancetype)initWithString:(NSString * _Nonnull)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithBoolean:(BOOL)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithInteger:(NSInteger)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithDouble:(double)value OBJC_DESIGNATED_INITIALIZER; +/// Creates a double attribute from a float value +- (nonnull instancetype)initWithFloat:(float)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + +/// Represents the severity level of a structured log entry. +/// Log levels are ordered by severity from least (trace) to most severe (fatal). +/// Each level corresponds to a numeric severity value following the OpenTelemetry specification. +typedef SWIFT_ENUM_NAMED(NSInteger, SentryStructuredLogLevel, "Level", open) { + SentryStructuredLogLevelTrace = 0, + SentryStructuredLogLevelDebug = 1, + SentryStructuredLogLevelInfo = 2, + SentryStructuredLogLevelWarn = 3, + SentryStructuredLogLevelError = 4, + SentryStructuredLogLevelFatal = 5, +}; + + +@class SentryClient; + +SWIFT_CLASS("_TtC6Sentry16SentryLogBatcher") +@interface SentryLogBatcher : NSObject +/// Initializes a new SentryLogBatcher. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param flushTimeout The timeout interval after which buffered logs will be flushed +/// +/// \param maxBufferSizeBytes The maximum buffer size in bytes before triggering an immediate flush +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client flushTimeout:(NSTimeInterval)flushTimeout maxBufferSizeBytes:(NSInteger)maxBufferSizeBytes dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue OBJC_DESIGNATED_INITIALIZER; +/// Convenience initializer with default flush timeout and buffer size. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +/// EXPERIMENTAL - A structured logging API for Sentry. +/// SentryLogger provides a structured logging interface that captures log entries +/// and sends them to Sentry. Supports multiple log levels (trace, debug, info, warn, +/// error, fatal) and allows attaching arbitrary attributes for enhanced context. +///

Supported Attribute Types

+/// note: +/// Sentry Logs is currently in Beta. See the Sentry Logs Documentation. +/// warning: +/// This API is experimental and subject to change without notice. +///
    +///
  • +/// String, Bool, Int, Double +///
  • +///
  • +/// Float (converted to Double) +///
  • +///
  • +/// Other types (converted to string) +///
  • +///
+///

Usage

+/// \code +/// let logger = SentrySDK.logger +/// logger.info("User logged in", attributes: ["userId": "12345"]) +/// logger.error("Payment failed", attributes: ["errorCode": 500]) +/// +/// // Structured string interpolation with automatic type detection +/// logger.info("User \(userId) processed \(count) items with \(percentage)% success") +/// logger.debug("Processing \(itemCount) items, active: \(isActive)") +/// logger.warn("Retry attempt \(currentAttempt) of \(maxAttempts) failed") +/// +/// \endcode +SWIFT_CLASS("_TtC6Sentry12SentryLogger") +@interface SentryLogger : NSObject +/// Logs a trace-level message. +- (void)trace:(NSString * _Nonnull)body; +/// Logs a trace-level message with additional attributes. +- (void)trace:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a debug-level message. +- (void)debug:(NSString * _Nonnull)body; +/// Logs a debug-level message with additional attributes. +- (void)debug:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an info-level message. +- (void)info:(NSString * _Nonnull)body; +/// Logs an info-level message with additional attributes. +- (void)info:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a warning-level message. +- (void)warn:(NSString * _Nonnull)body; +/// Logs a warning-level message with additional attributes. +- (void)warn:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an error-level message. +- (void)error:(NSString * _Nonnull)body; +/// Logs an error-level message with additional attributes. +- (void)error:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a fatal-level message. +- (void)fatal:(NSString * _Nonnull)body; +/// Logs a fatal-level message with additional attributes. +- (void)fatal:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + @class SentryMXFrame; SWIFT_CLASS("_TtC6Sentry17SentryMXCallStack") @@ -1879,6 +2583,7 @@ SWIFT_PROTOCOL("_TtP6Sentry23SentryMXManagerDelegate_") SWIFT_AVAILABILITY(watch + enum SentryProfileLifecycle : NSInteger; /// An object containing configuration for the Sentry profiler. @@ -1985,6 +2690,7 @@ SWIFT_PROTOCOL_NAMED("SentryRRWebEventProtocol") SWIFT_CLASS("_TtC6Sentry16SentryRRWebEvent") @interface SentryRRWebEvent : NSObject +@property (nonatomic, readonly, copy) NSDictionary * _Nullable data; - (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @@ -2230,6 +2936,333 @@ typedef SWIFT_ENUM(NSInteger, SentryReplayType, open) { }; +@protocol SentrySpan; +@class SentryScope; +@class SentryTransactionContext; +@class NSException; +@class SentryUserFeedback; +@class SentryUser; + +/// The main entry point for the Sentry SDK. +/// We recommend using start(configureOptions:) to initialize Sentry. +SWIFT_CLASS("_TtC6Sentry9SentrySDK") +@interface SentrySDK : NSObject +/// The current active transaction or span bound to the scope. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) id _Nullable span;) ++ (id _Nullable)span SWIFT_WARN_UNUSED_RESULT; +/// Indicates whether the Sentry SDK is enabled. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL isEnabled;) ++ (BOOL)isEnabled SWIFT_WARN_UNUSED_RESULT; +/// API to access Sentry logs +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryLogger * _Nonnull logger;) ++ (SentryLogger * _Nonnull)logger SWIFT_WARN_UNUSED_RESULT; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithOptions:(SentryOptions * _Nonnull)options; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithConfigureOptions:(void (^ _Nonnull)(SentryOptions * _Nonnull))configureOptions; +/// Captures a manually created event and sends it to Sentry. +/// \param event The event to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event; +/// Captures a manually created event and sends it to Sentry. Only the data in this scope object will +/// be added to the event. The global scope will be ignored. +/// \param event The event to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScope:(SentryScope * _Nonnull)scope; +/// Captures a manually created event and sends it to Sentry. Maintains the global scope but mutates +/// scope data for only this call. +/// \param event The event to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Captures an error event and sends it to Sentry. +/// \param error The error to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error; +/// Captures an error event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param error The error to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScope:(SentryScope * _Nonnull)scope; +/// Captures an error event and sends it to Sentry. Maintains the global scope but mutates scope data +/// for only this call. +/// \param error The error to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures an exception event and sends it to Sentry. +/// \param exception The exception to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception; +/// Captures an exception event and sends it to Sentry. Only the data in this scope object will be +/// added to the event. The global scope will be ignored. +/// \param exception The exception to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScope:(SentryScope * _Nonnull)scope; +/// Captures an exception event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param exception The exception to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures a message event and sends it to Sentry. +/// \param message The message to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message; +/// Captures a message event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param message The message to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScope:(SentryScope * _Nonnull)scope; +/// Captures a message event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param message The message to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// \param userFeedback The user feedback to send to Sentry. +/// ++ (void)captureUserFeedback:(SentryUserFeedback * _Nonnull)userFeedback SWIFT_DEPRECATED_MSG("Use SentrySDK.back or use or configure our new managed UX with SentryOptions.configureUserFeedback."); +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// warning: +/// This is an experimental feature and may still have bugs. +/// note: +/// If you’d prefer not to have to build the UI required to gather the feedback from the user, +/// see SentryOptions.configureUserFeedback to customize a fully managed integration. See +/// https://docs.sentry.io/platforms/apple/user-feedback/ for more information. +/// \param feedback The feedback to send to Sentry. +/// ++ (void)captureFeedback:(SentryFeedback * _Nonnull)feedback; +/// Adds a Breadcrumb to the current Scope of the current Hub. If the total number of breadcrumbs +/// exceeds the SentryOptions.maxBreadcrumbs the SDK removes the oldest breadcrumb. +/// \param crumb The Breadcrumb to add to the current Scope of the current Hub. +/// ++ (void)addBreadcrumb:(SentryBreadcrumb * _Nonnull)crumb; +/// Use this method to modify the current Scope of the current Hub. The SDK uses the Scope to attach +/// contextual data to events. +/// \param callback The callback for configuring the current Scope of the current Hub. +/// ++ (void)configureScope:(void (^ _Nonnull)(SentryScope * _Nonnull))callback; +/// Checks if the last program execution terminated with a crash. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL crashedLastRun;) ++ (BOOL)crashedLastRun SWIFT_WARN_UNUSED_RESULT; +/// Checks if the SDK detected a start-up crash during SDK initialization. +/// note: +/// The SDK init waits synchronously for up to 5 seconds to flush out events if the app crashes +/// within 2 seconds after the SDK init. +/// +/// returns: +/// true if the SDK detected a start-up crash and false if not. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL detectedStartUpCrash;) ++ (BOOL)detectedStartUpCrash SWIFT_WARN_UNUSED_RESULT; +/// Set user to the current Scope of the current Hub. +/// note: +/// You must start the SDK before calling this method, otherwise it doesn’t set the user. +/// \param user The user to set to the current Scope. +/// ++ (void)setUser:(SentryUser * _Nullable)user; +/// Starts a new SentrySession. If there’s a running SentrySession, it ends it before starting the +/// new one. You can use this method in combination with endSession to manually track +/// sessions. The SDK uses SentrySession to inform Sentry about release and project +/// associated project health. ++ (void)startSession; +/// Ends the current SentrySession. You can use this method in combination with startSession to +/// manually track SentrySessions. The SDK uses SentrySession to inform Sentry about release and +/// project associated project health. ++ (void)endSession; +/// This forces a crash, useful to test the SentryCrash integration. +/// note: +/// The SDK can’t report a crash when a debugger is attached. Your application needs to run +/// without a debugger attached to capture the crash and send it to Sentry the next time you launch +/// your application. ++ (void)crash; +/// Reports to the ongoing UIViewController transaction +/// that the screen contents are fully loaded and displayed, +/// which will create a new span. +/// seealso: +/// +/// https://docs.sentry.io/platforms/cocoa/performance/instrumentation/automatic-instrumentation/#time-to-full-display ++ (void)reportFullyDisplayed; +/// Pauses sending detected app hangs to Sentry. +/// This method doesn’t close the detection of app hangs. Instead, the app hang detection +/// will ignore detected app hangs until you call resumeAppHangTracking. ++ (void)pauseAppHangTracking; +/// Resumes sending detected app hangs to Sentry. ++ (void)resumeAppHangTracking; +/// Waits synchronously for the SDK to flush out all queued and cached items for up to the specified +/// timeout in seconds. If there is no internet connection, the function returns immediately. The SDK +/// doesn’t dispose the client or the hub. +/// note: +/// This might take slightly longer than the specified timeout if there are many batched logs to capture. +/// \param timeout The time to wait for the SDK to complete the flush. +/// ++ (void)flush:(NSTimeInterval)timeout; +/// Closes the SDK, uninstalls all the integrations, and calls flush with +/// SentryOptions.shutdownTimeInterval. ++ (void)close; +/// Start a new continuous profiling session if one is not already running. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Unlike transaction-based profiling, continuous profiling does not take into account +/// SentryOptions.profilesSampleRate or SentryOptions.profilesSampler. If either of those +/// options are set, this method does nothing. +/// note: +/// Taking into account the above note, if SentryOptions.configureProfiling is not set, +/// calls to this method will always start a profile if one is not already running. This includes app +/// launch profiles configured with SentryOptions.enableAppLaunchProfiling. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if the profiling +/// session is not sampled with respect to SentryOptions.profileSessionSampleRate, or if it is +/// sampled but the profiler is already running. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if +/// SentryOptions.profileLifecycle is set to trace. In this scenario, the profiler is +/// automatically started and stopped depending on whether there is an active sampled span, so it is +/// not permitted to manually start profiling. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)startProfiler; +/// Stop a continuous profiling session if there is one ongoing. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Does nothing if SentryOptions.profileLifecycle is set to trace. +/// note: +/// Does not immediately stop the profiler. Profiling data is uploaded at regular timed +/// intervals; when the current interval completes, then the profiler stops and the data gathered +/// during that last interval is uploaded. +/// note: +/// If a new call to startProfiler that would start the profiler is made before the last +/// interval completes, the profiler will continue running until another call to stop is made. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)stopProfiler; +/// note: +/// Conceptually internal but needs to be marked public with SPI for ObjC visibility ++ (void)clearLogger; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + /// A note on the thread safety: /// The methods configure and log don’t use synchronization mechanisms, meaning they aren’t strictly speaking thread-safe. @@ -2268,7 +3301,6 @@ SWIFT_CLASS("_TtC6Sentry34SentrySRDefaultBreadcrumbConverter") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -@class SentryUser; SWIFT_CLASS("_TtC6Sentry26SentryScopePersistentStore") @interface SentryScopePersistentStore : NSObject @@ -2733,6 +3765,19 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +@class SentryDispatchQueueWrapper; +@class SentryDefaultCurrentDateProvider; + +SWIFT_CLASS_NAMED("Dependencies") +@interface SentryDependencies : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDispatchQueueWrapper * _Nonnull dispatchQueueWrapper;) ++ (SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryDefaultCurrentDateProvider * _Nonnull dateProvider;) ++ (SentryDefaultCurrentDateProvider * _Nonnull)dateProvider SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + @@ -2744,10 +3789,34 @@ SWIFT_CLASS("_TtC6Sentry19HTTPHeaderSanitizer") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +@class NSNumber; + +SWIFT_CLASS("_TtC6Sentry13LoadValidator") +@interface LoadValidator : NSObject ++ (void)checkForDuplicatedSDKWithImageName:(NSString * _Nonnull)imageName imageAddress:(NSNumber * _Nonnull)imageAddress imageSize:(NSNumber * _Nonnull)imageSize dispatchQueueWrapper:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueueWrapper; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +@class NSOperationQueue; +@class NSNotification; +@protocol NSObject; + +SWIFT_PROTOCOL("_TtP6Sentry33SentryNSNotificationCenterWrapper_") +@protocol SentryNSNotificationCenterWrapper +- (void)addObserver:(id _Nonnull)observer selector:(SEL _Nonnull)aSelector name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (id _Nonnull)addObserverForName:(NSNotificationName _Nullable)name object:(id _Nullable)obj queue:(NSOperationQueue * _Nullable)queue usingBlock:(void (^ _Nonnull)(NSNotification * _Nonnull))block SWIFT_WARN_UNUSED_RESULT; +- (void)removeObserver:(id _Nonnull)observer name:(NSNotificationName _Nullable)aName object:(id _Nullable)anObject; +- (void)postNotification:(NSNotification * _Nonnull)notification; +@end + + +@interface NSNotificationCenter (SWIFT_EXTENSION(Sentry)) +@end + @class SentryExperimentalOptions; @interface SentryOptions (SWIFT_EXTENSION(Sentry)) @@ -2854,30 +3923,17 @@ SWIFT_CLASS("_TtC6Sentry26SentryDispatchQueueWrapper") SWIFT_CLASS("_TtC6Sentry28SentryEnabledFeaturesBuilder") @interface SentryEnabledFeaturesBuilder : NSObject -+ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT; ++ (NSArray * _Nonnull)getEnabledFeaturesWithOptions:(SentryOptions * _Nullable)options SWIFT_WARN_UNUSED_RESULT SWIFT_DEPRECATED_MSG("This is only marked as deprecated because enableAppLaunchProfiling is marked as deprecated. Once that is removed this can be removed."); - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -/// Subclass of SentryEvent so we can add the Decodable implementation via a Swift extension. We need -/// this due to our mixed use of public Swift and ObjC classes. We could avoid this class by -/// converting SentryReplayEvent back to ObjC, but we rather accept this tradeoff as we want to -/// convert all public classes to Swift in the future. This does not need to be public, but was previously -/// defined in objc and was public. In the next major version of the SDK we should make it internal and final -/// and remove the @objc annotation. -/// @note: We can’t add the extension for Decodable directly on SentryEvent, because we get an error -/// in SentryReplayEvent: ‘required’ initializer ‘init(from:)’ must be provided by subclass of -/// ‘Event’ Once we add the initializer with required convenience public init(from decoder: any -/// Decoder) throws { fatalError(“init(from:) has not been implemented”) -/// } -/// we get the error initializer ‘init(from:)’ is declared in extension of ‘Event’ and cannot be -/// overridden. Therefore, we add the Decodable implementation not on the Event, but to a subclass of -/// the event. SWIFT_CLASS_NAMED("SentryEventDecodable") @interface SentryEventDecodable : SentryEvent - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end + @class NSData; SWIFT_CLASS("_TtC6Sentry18SentryEventDecoder") @@ -2910,6 +3966,8 @@ SWIFT_CLASS("_TtC6Sentry25SentryExperimentalOptions") /// experiment: /// This is an experimental feature and is therefore disabled by default. We’ll enable it by default in a future major release. @property (nonatomic) BOOL enableUnhandledCPPExceptionsV2; +/// Logs are considered beta. +@property (nonatomic) BOOL enableLogs; - (void)validateOptions:(NSDictionary * _Nullable)options; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end @@ -2945,7 +4003,6 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @interface SentryFeedback (SWIFT_EXTENSION(Sentry)) -- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; @end @class SentryAttachment; @@ -2957,6 +4014,11 @@ typedef SWIFT_ENUM(NSInteger, SentryFeedbackSource, open) { @end +@interface SentryFeedback (SWIFT_EXTENSION(Sentry)) +- (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; +@end + + SWIFT_CLASS("_TtC6Sentry18SentryFileContents") @interface SentryFileContents : NSObject @property (nonatomic, readonly, copy) NSString * _Nonnull path; @@ -3013,6 +4075,7 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryId * _ @property (nonatomic, readonly) NSUInteger hash; @end + typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { kSentryLevelNone SWIFT_COMPILE_NAME("none") = 0, kSentryLevelDebug SWIFT_COMPILE_NAME("debug") = 1, @@ -3026,11 +4089,168 @@ typedef SWIFT_ENUM(NSUInteger, SentryLevel, open) { SWIFT_CLASS("_TtC6Sentry17SentryLevelHelper") @interface SentryLevelHelper : NSObject + (NSString * _Nonnull)nameForLevel:(enum SentryLevel)level SWIFT_WARN_UNUSED_RESULT; -+ (enum SentryLevel)levelForName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT; ++ (enum SentryLevel)levelForName:(NSString * _Nullable)name SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end +enum SentryStructuredLogLevel : NSInteger; +@class SentryStructuredLogAttribute; + +/// A structured log entry that captures log data with associated attribute metadata. +/// Use the options.beforeSendLog callback to modify or filter log data. +SWIFT_CLASS("_TtC6Sentry9SentryLog") +@interface SentryLog : NSObject +/// The timestamp when the log event occurred +@property (nonatomic, copy) NSDate * _Nonnull timestamp; +/// The trace ID to associate this log with distributed tracing +@property (nonatomic, strong) SentryId * _Nonnull traceId; +/// The severity level of the log entry +@property (nonatomic) enum SentryStructuredLogLevel level; +/// The main log message content +@property (nonatomic, copy) NSString * _Nonnull body; +/// A dictionary of structured attributes added to the log entry +@property (nonatomic, copy) NSDictionary * _Nonnull attributes; +/// Numeric representation of the severity level (Int) +@property (nonatomic, strong) NSNumber * _Nullable severityNumber; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + + +/// A typed attribute that can be attached to structured log entries. +/// Attribute provides a type-safe way to store structured data alongside log messages. +/// Supports String, Bool, Int, and Double types. +SWIFT_CLASS_NAMED("Attribute") +@interface SentryStructuredLogAttribute : NSObject +/// The type identifier for this attribute (“string”, “boolean”, “integer”, “double”) +@property (nonatomic, readonly, copy) NSString * _Nonnull type; +/// The actual value stored in this attribute +@property (nonatomic, readonly) id _Nonnull value; +- (nonnull instancetype)initWithString:(NSString * _Nonnull)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithBoolean:(BOOL)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithInteger:(NSInteger)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithDouble:(double)value OBJC_DESIGNATED_INITIALIZER; +/// Creates a double attribute from a float value +- (nonnull instancetype)initWithFloat:(float)value OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +@interface SentryLog (SWIFT_EXTENSION(Sentry)) +@end + +/// Represents the severity level of a structured log entry. +/// Log levels are ordered by severity from least (trace) to most severe (fatal). +/// Each level corresponds to a numeric severity value following the OpenTelemetry specification. +typedef SWIFT_ENUM_NAMED(NSInteger, SentryStructuredLogLevel, "Level", open) { + SentryStructuredLogLevelTrace = 0, + SentryStructuredLogLevelDebug = 1, + SentryStructuredLogLevelInfo = 2, + SentryStructuredLogLevelWarn = 3, + SentryStructuredLogLevelError = 4, + SentryStructuredLogLevelFatal = 5, +}; + + +@class SentryClient; + +SWIFT_CLASS("_TtC6Sentry16SentryLogBatcher") +@interface SentryLogBatcher : NSObject +/// Initializes a new SentryLogBatcher. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param flushTimeout The timeout interval after which buffered logs will be flushed +/// +/// \param maxBufferSizeBytes The maximum buffer size in bytes before triggering an immediate flush +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client flushTimeout:(NSTimeInterval)flushTimeout maxBufferSizeBytes:(NSInteger)maxBufferSizeBytes dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue OBJC_DESIGNATED_INITIALIZER; +/// Convenience initializer with default flush timeout and buffer size. +/// important: +/// The dispatchQueue parameter MUST be a serial queue to ensure thread safety. +/// Passing a concurrent queue will result in undefined behavior and potential data races. +/// \param client The SentryClient to use for sending logs +/// +/// \param dispatchQueue A serial dispatch queue wrapper for thread-safe access to mutable state +/// +- (nonnull instancetype)initWithClient:(SentryClient * _Nonnull)client dispatchQueue:(SentryDispatchQueueWrapper * _Nonnull)dispatchQueue; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +/// EXPERIMENTAL - A structured logging API for Sentry. +/// SentryLogger provides a structured logging interface that captures log entries +/// and sends them to Sentry. Supports multiple log levels (trace, debug, info, warn, +/// error, fatal) and allows attaching arbitrary attributes for enhanced context. +///

Supported Attribute Types

+/// note: +/// Sentry Logs is currently in Beta. See the Sentry Logs Documentation. +/// warning: +/// This API is experimental and subject to change without notice. +///
    +///
  • +/// String, Bool, Int, Double +///
  • +///
  • +/// Float (converted to Double) +///
  • +///
  • +/// Other types (converted to string) +///
  • +///
+///

Usage

+/// \code +/// let logger = SentrySDK.logger +/// logger.info("User logged in", attributes: ["userId": "12345"]) +/// logger.error("Payment failed", attributes: ["errorCode": 500]) +/// +/// // Structured string interpolation with automatic type detection +/// logger.info("User \(userId) processed \(count) items with \(percentage)% success") +/// logger.debug("Processing \(itemCount) items, active: \(isActive)") +/// logger.warn("Retry attempt \(currentAttempt) of \(maxAttempts) failed") +/// +/// \endcode +SWIFT_CLASS("_TtC6Sentry12SentryLogger") +@interface SentryLogger : NSObject +/// Logs a trace-level message. +- (void)trace:(NSString * _Nonnull)body; +/// Logs a trace-level message with additional attributes. +- (void)trace:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a debug-level message. +- (void)debug:(NSString * _Nonnull)body; +/// Logs a debug-level message with additional attributes. +- (void)debug:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an info-level message. +- (void)info:(NSString * _Nonnull)body; +/// Logs an info-level message with additional attributes. +- (void)info:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a warning-level message. +- (void)warn:(NSString * _Nonnull)body; +/// Logs a warning-level message with additional attributes. +- (void)warn:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs an error-level message. +- (void)error:(NSString * _Nonnull)body; +/// Logs an error-level message with additional attributes. +- (void)error:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +/// Logs a fatal-level message. +- (void)fatal:(NSString * _Nonnull)body; +/// Logs a fatal-level message with additional attributes. +- (void)fatal:(NSString * _Nonnull)body attributes:(NSDictionary * _Nonnull)attributes; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + @class SentryMXFrame; SWIFT_CLASS("_TtC6Sentry17SentryMXCallStack") @@ -3092,6 +4312,7 @@ SWIFT_PROTOCOL("_TtP6Sentry23SentryMXManagerDelegate_") SWIFT_AVAILABILITY(watch + enum SentryProfileLifecycle : NSInteger; /// An object containing configuration for the Sentry profiler. @@ -3198,6 +4419,7 @@ SWIFT_PROTOCOL_NAMED("SentryRRWebEventProtocol") SWIFT_CLASS("_TtC6Sentry16SentryRRWebEvent") @interface SentryRRWebEvent : NSObject +@property (nonatomic, readonly, copy) NSDictionary * _Nullable data; - (NSDictionary * _Nonnull)serialize SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @@ -3443,6 +4665,333 @@ typedef SWIFT_ENUM(NSInteger, SentryReplayType, open) { }; +@protocol SentrySpan; +@class SentryScope; +@class SentryTransactionContext; +@class NSException; +@class SentryUserFeedback; +@class SentryUser; + +/// The main entry point for the Sentry SDK. +/// We recommend using start(configureOptions:) to initialize Sentry. +SWIFT_CLASS("_TtC6Sentry9SentrySDK") +@interface SentrySDK : NSObject +/// The current active transaction or span bound to the scope. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) id _Nullable span;) ++ (id _Nullable)span SWIFT_WARN_UNUSED_RESULT; +/// Indicates whether the Sentry SDK is enabled. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL isEnabled;) ++ (BOOL)isEnabled SWIFT_WARN_UNUSED_RESULT; +/// API to access Sentry logs +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SentryLogger * _Nonnull logger;) ++ (SentryLogger * _Nonnull)logger SWIFT_WARN_UNUSED_RESULT; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithOptions:(SentryOptions * _Nonnull)options; +/// Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to +/// set a valid DSN. +/// note: +/// Call this method on the main thread. When calling it from a background thread, the +/// SDK starts on the main thread async. ++ (void)startWithConfigureOptions:(void (^ _Nonnull)(SentryOptions * _Nonnull))configureOptions; +/// Captures a manually created event and sends it to Sentry. +/// \param event The event to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event; +/// Captures a manually created event and sends it to Sentry. Only the data in this scope object will +/// be added to the event. The global scope will be ignored. +/// \param event The event to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScope:(SentryScope * _Nonnull)scope; +/// Captures a manually created event and sends it to Sentry. Maintains the global scope but mutates +/// scope data for only this call. +/// \param event The event to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureEvent:(SentryEvent * _Nonnull)event withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param name The transaction name. +/// +/// \param operation Short code identifying the type of operation the span is measuring. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithName:(NSString * _Nonnull)name operation:(NSString * _Nonnull)operation bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param bindToScope Indicates whether the SDK should bind the new transaction to the scope. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext bindToScope:(BOOL)bindToScope customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Creates a transaction, binds it to the hub and returns the instance. +/// \param transactionContext The transaction context. +/// +/// \param customSamplingContext Additional information about the sampling context. +/// +/// +/// returns: +/// The created transaction. ++ (id _Nonnull)startTransactionWithContext:(SentryTransactionContext * _Nonnull)transactionContext customSamplingContext:(NSDictionary * _Nonnull)customSamplingContext; +/// Captures an error event and sends it to Sentry. +/// \param error The error to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error; +/// Captures an error event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param error The error to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScope:(SentryScope * _Nonnull)scope; +/// Captures an error event and sends it to Sentry. Maintains the global scope but mutates scope data +/// for only this call. +/// \param error The error to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureError:(NSError * _Nonnull)error withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures an exception event and sends it to Sentry. +/// \param exception The exception to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception; +/// Captures an exception event and sends it to Sentry. Only the data in this scope object will be +/// added to the event. The global scope will be ignored. +/// \param exception The exception to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScope:(SentryScope * _Nonnull)scope; +/// Captures an exception event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param exception The exception to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureException:(NSException * _Nonnull)exception withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures a message event and sends it to Sentry. +/// \param message The message to send to Sentry. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message; +/// Captures a message event and sends it to Sentry. Only the data in this scope object will be added +/// to the event. The global scope will be ignored. +/// \param message The message to send to Sentry. +/// +/// \param scope The scope containing event metadata. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScope:(SentryScope * _Nonnull)scope; +/// Captures a message event and sends it to Sentry. Maintains the global scope but mutates scope +/// data for only this call. +/// \param message The message to send to Sentry. +/// +/// \param block The block mutating the scope only for this call. +/// +/// +/// returns: +/// The SentryId of the event or SentryId.empty if the event is not sent. ++ (SentryId * _Nonnull)captureMessage:(NSString * _Nonnull)message withScopeBlock:(void (^ _Nonnull)(SentryScope * _Nonnull))block; +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// \param userFeedback The user feedback to send to Sentry. +/// ++ (void)captureUserFeedback:(SentryUserFeedback * _Nonnull)userFeedback SWIFT_DEPRECATED_MSG("Use SentrySDK.back or use or configure our new managed UX with SentryOptions.configureUserFeedback."); +/// Captures user feedback that was manually gathered and sends it to Sentry. +/// warning: +/// This is an experimental feature and may still have bugs. +/// note: +/// If you’d prefer not to have to build the UI required to gather the feedback from the user, +/// see SentryOptions.configureUserFeedback to customize a fully managed integration. See +/// https://docs.sentry.io/platforms/apple/user-feedback/ for more information. +/// \param feedback The feedback to send to Sentry. +/// ++ (void)captureFeedback:(SentryFeedback * _Nonnull)feedback; +/// Adds a Breadcrumb to the current Scope of the current Hub. If the total number of breadcrumbs +/// exceeds the SentryOptions.maxBreadcrumbs the SDK removes the oldest breadcrumb. +/// \param crumb The Breadcrumb to add to the current Scope of the current Hub. +/// ++ (void)addBreadcrumb:(SentryBreadcrumb * _Nonnull)crumb; +/// Use this method to modify the current Scope of the current Hub. The SDK uses the Scope to attach +/// contextual data to events. +/// \param callback The callback for configuring the current Scope of the current Hub. +/// ++ (void)configureScope:(void (^ _Nonnull)(SentryScope * _Nonnull))callback; +/// Checks if the last program execution terminated with a crash. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL crashedLastRun;) ++ (BOOL)crashedLastRun SWIFT_WARN_UNUSED_RESULT; +/// Checks if the SDK detected a start-up crash during SDK initialization. +/// note: +/// The SDK init waits synchronously for up to 5 seconds to flush out events if the app crashes +/// within 2 seconds after the SDK init. +/// +/// returns: +/// true if the SDK detected a start-up crash and false if not. +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly) BOOL detectedStartUpCrash;) ++ (BOOL)detectedStartUpCrash SWIFT_WARN_UNUSED_RESULT; +/// Set user to the current Scope of the current Hub. +/// note: +/// You must start the SDK before calling this method, otherwise it doesn’t set the user. +/// \param user The user to set to the current Scope. +/// ++ (void)setUser:(SentryUser * _Nullable)user; +/// Starts a new SentrySession. If there’s a running SentrySession, it ends it before starting the +/// new one. You can use this method in combination with endSession to manually track +/// sessions. The SDK uses SentrySession to inform Sentry about release and project +/// associated project health. ++ (void)startSession; +/// Ends the current SentrySession. You can use this method in combination with startSession to +/// manually track SentrySessions. The SDK uses SentrySession to inform Sentry about release and +/// project associated project health. ++ (void)endSession; +/// This forces a crash, useful to test the SentryCrash integration. +/// note: +/// The SDK can’t report a crash when a debugger is attached. Your application needs to run +/// without a debugger attached to capture the crash and send it to Sentry the next time you launch +/// your application. ++ (void)crash; +/// Reports to the ongoing UIViewController transaction +/// that the screen contents are fully loaded and displayed, +/// which will create a new span. +/// seealso: +/// +/// https://docs.sentry.io/platforms/cocoa/performance/instrumentation/automatic-instrumentation/#time-to-full-display ++ (void)reportFullyDisplayed; +/// Pauses sending detected app hangs to Sentry. +/// This method doesn’t close the detection of app hangs. Instead, the app hang detection +/// will ignore detected app hangs until you call resumeAppHangTracking. ++ (void)pauseAppHangTracking; +/// Resumes sending detected app hangs to Sentry. ++ (void)resumeAppHangTracking; +/// Waits synchronously for the SDK to flush out all queued and cached items for up to the specified +/// timeout in seconds. If there is no internet connection, the function returns immediately. The SDK +/// doesn’t dispose the client or the hub. +/// note: +/// This might take slightly longer than the specified timeout if there are many batched logs to capture. +/// \param timeout The time to wait for the SDK to complete the flush. +/// ++ (void)flush:(NSTimeInterval)timeout; +/// Closes the SDK, uninstalls all the integrations, and calls flush with +/// SentryOptions.shutdownTimeInterval. ++ (void)close; +/// Start a new continuous profiling session if one is not already running. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Unlike transaction-based profiling, continuous profiling does not take into account +/// SentryOptions.profilesSampleRate or SentryOptions.profilesSampler. If either of those +/// options are set, this method does nothing. +/// note: +/// Taking into account the above note, if SentryOptions.configureProfiling is not set, +/// calls to this method will always start a profile if one is not already running. This includes app +/// launch profiles configured with SentryOptions.enableAppLaunchProfiling. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if the profiling +/// session is not sampled with respect to SentryOptions.profileSessionSampleRate, or if it is +/// sampled but the profiler is already running. +/// note: +/// If neither SentryOptions.profilesSampleRate nor SentryOptions.profilesSampler are +/// set, and SentryOptions.configureProfiling is set, this method does nothing if +/// SentryOptions.profileLifecycle is set to trace. In this scenario, the profiler is +/// automatically started and stopped depending on whether there is an active sampled span, so it is +/// not permitted to manually start profiling. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)startProfiler; +/// Stop a continuous profiling session if there is one ongoing. +/// warning: +/// Continuous profiling mode is experimental and may still contain bugs. +/// note: +/// Does nothing if SentryOptions.profileLifecycle is set to trace. +/// note: +/// Does not immediately stop the profiler. Profiling data is uploaded at regular timed +/// intervals; when the current interval completes, then the profiler stops and the data gathered +/// during that last interval is uploaded. +/// note: +/// If a new call to startProfiler that would start the profiler is made before the last +/// interval completes, the profiler will continue running until another call to stop is made. +/// note: +/// Profiling is automatically disabled if a thread sanitizer is attached. +/// seealso: +/// https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling ++ (void)stopProfiler; +/// note: +/// Conceptually internal but needs to be marked public with SPI for ObjC visibility ++ (void)clearLogger; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + /// A note on the thread safety: /// The methods configure and log don’t use synchronization mechanisms, meaning they aren’t strictly speaking thread-safe. @@ -3481,7 +5030,6 @@ SWIFT_CLASS("_TtC6Sentry34SentrySRDefaultBreadcrumbConverter") - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; @end -@class SentryUser; SWIFT_CLASS("_TtC6Sentry26SentryScopePersistentStore") @interface SentryScopePersistentStore : NSObject diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/Sentry.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/Sentry.h index 04189c7..d1f1919 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/Sentry.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/Sentry.h @@ -34,7 +34,6 @@ FOUNDATION_EXPORT const unsigned char SentryVersionString[]; # import # import # import -# import # import # import # import diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBaggage.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBaggage.h index 54223b0..26a8483 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBaggage.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBaggage.h @@ -43,7 +43,9 @@ NS_SWIFT_NAME(Baggage) /** * The value of a segment attribute in the user's data bag, if it exists. */ +#if !SDK_V9 @property (nullable, nonatomic, readonly) NSString *userSegment; +#endif /** * The random value used to determine if the trace is sampled. @@ -69,7 +71,9 @@ NS_SWIFT_NAME(Baggage) releaseName:(nullable NSString *)releaseName environment:(nullable NSString *)environment transaction:(nullable NSString *)transaction +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif sampleRate:(nullable NSString *)sampleRate sampled:(nullable NSString *)sampled replayId:(nullable NSString *)replayId; @@ -79,7 +83,9 @@ NS_SWIFT_NAME(Baggage) releaseName:(nullable NSString *)releaseName environment:(nullable NSString *)environment transaction:(nullable NSString *)transaction +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif sampleRate:(nullable NSString *)sampleRate sampleRand:(nullable NSString *)sampleRand sampled:(nullable NSString *)sampled diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBinaryImageCache.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBinaryImageCache.h index d555c2e..e4f7b05 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBinaryImageCache.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBinaryImageCache.h @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SentryBinaryImageCache : NSObject -- (void)start; +- (void)start:(BOOL)isDebug; - (void)stop; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBreadcrumb.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBreadcrumb.h index 559d6a4..15c56dc 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBreadcrumb.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryBreadcrumb.h @@ -6,12 +6,17 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN NS_SWIFT_NAME(Breadcrumb) -@interface SentryBreadcrumb : NSObject +@interface SentryBreadcrumb : NSObject +#if !SDK_V9 + +#endif /** * Level of breadcrumb @@ -59,7 +64,9 @@ NS_SWIFT_NAME(Breadcrumb) - (instancetype)init; + (instancetype)new NS_UNAVAILABLE; +#if !SDK_V9 - (NSDictionary *)serialize; +#endif // !SDK_V9 - (BOOL)isEqual:(id _Nullable)other; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugImageProvider+HybridSDKs.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugImageProvider+HybridSDKs.h index 242e198..7934680 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugImageProvider+HybridSDKs.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugImageProvider+HybridSDKs.h @@ -4,13 +4,21 @@ # import "SentryDebugImageProvider.h" #endif +#import + @class SentryDebugMeta; @class SentryThread; @class SentryFrame; NS_ASSUME_NONNULL_BEGIN +#if SDK_V9 +@interface SentryDebugImageProvider : NSObject +#else @interface SentryDebugImageProvider () +#endif + +- (instancetype)init; /** * Returns a list of debug images that are being referenced by the given frames. diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugImageProvider.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugImageProvider.h index 552ef8b..615f35e 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugImageProvider.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugImageProvider.h @@ -1,4 +1,6 @@ -#import +#if !SDK_V9 + +# import @class SentryDebugMeta; @class SentryFrame; @@ -88,3 +90,5 @@ NS_ASSUME_NONNULL_BEGIN @end NS_ASSUME_NONNULL_END + +#endif // !SDK_V9 diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugMeta.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugMeta.h index a451bef..4b1a08b 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugMeta.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDebugMeta.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -20,7 +22,10 @@ NS_ASSUME_NONNULL_BEGIN * @c SentryDebugImage in a future version. */ NS_SWIFT_NAME(DebugMeta) -@interface SentryDebugMeta : NSObject +@interface SentryDebugMeta : NSObject +#if !SDK_V9 + +#endif /** * The UUID of the image. Use @c debugID when using "macho" as the @c type . diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDefines.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDefines.h index e9ed26f..e04befb 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDefines.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDefines.h @@ -75,6 +75,7 @@ @class SentryEvent; @class SentrySamplingContext; @class SentryUserFeedbackConfiguration; +@class SentryLog; @protocol SentrySpan; /** @@ -107,6 +108,14 @@ typedef SentryEvent *_Nullable (^SentryBeforeSendEventCallback)(SentryEvent *_No */ typedef id _Nullable (^SentryBeforeSendSpanCallback)(id _Nonnull span); +#if !SWIFT_PACKAGE +/** + * Use this block to drop or modify a log before the SDK sends it to Sentry. Return @c nil to drop + * the log. + */ +typedef SentryLog *_Nullable (^SentryBeforeSendLogCallback)(SentryLog *_Nonnull log); +#endif // !SWIFT_PACKAGE + /** * Block can be used to decide if the SDK should capture a screenshot or not. Return @c true if the * SDK should capture a screenshot, return @c false if not. This callback doesn't work for crashes. diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDependencyContainer.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDependencyContainer.h index 927b1cc..e199c28 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDependencyContainer.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDependencyContainer.h @@ -13,7 +13,6 @@ @class SentryDispatchQueueWrapper; @class SentryExtraContextProvider; @class SentryFileManager; -@class SentryNSNotificationCenterWrapper; @class SentryNSProcessInfoWrapper; @class SentryNSTimerFactory; @class SentrySwizzleWrapper; @@ -33,6 +32,8 @@ @protocol SentryRateLimits; @protocol SentryApplication; @protocol SentryDispatchQueueProviderProtocol; +@protocol SentryNSNotificationCenterWrapper; +@protocol SentryObjCRuntimeWrapper; #if SENTRY_HAS_METRIC_KIT @class SentryMXManager; @@ -87,7 +88,7 @@ SENTRY_NO_INIT @property (nonatomic, strong) SentryBinaryImageCache *binaryImageCache; @property (nonatomic, strong) id dateProvider; @property (nonatomic, strong) SentryExtraContextProvider *extraContextProvider; -@property (nonatomic, strong) SentryNSNotificationCenterWrapper *notificationCenterWrapper; +@property (nonatomic, strong) id notificationCenterWrapper; @property (nonatomic, strong) SentryCrashWrapper *crashWrapper; @property (nonatomic, strong) SentryNSProcessInfoWrapper *processInfoWrapper; @property (nonatomic, strong) SentrySysctl *sysctlWrapper; @@ -117,9 +118,10 @@ SENTRY_NO_INIT - (id)getANRTracker:(NSTimeInterval)timeout isV2Enabled:(BOOL)isV2Enabled; #endif // SENTRY_HAS_UIKIT +#if SENTRY_TARGET_PROFILING_SUPPORTED @property (nonatomic, strong) SentrySystemWrapper *systemWrapper; +#endif // SENTRY_TARGET_PROFILING_SUPPORTED @property (nonatomic, strong) SentryDispatchFactory *dispatchFactory; -@property (nonatomic, strong) id dispatchQueueProvider; @property (nonatomic, strong) SentryNSTimerFactory *timerFactory; @property (nonatomic, strong) SentrySwizzleWrapper *swizzleWrapper; @@ -135,6 +137,7 @@ SENTRY_NO_INIT @property (nonatomic, strong) SentryMXManager *metricKitManager API_AVAILABLE( ios(15.0), macos(12.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos); #endif // SENTRY_HAS_METRIC_KIT +@property (nonatomic, strong) id objcRuntimeWrapper; #if SENTRY_HAS_UIKIT - (SentryWatchdogTerminationScopeObserver *)getWatchdogTerminationScopeObserverWithOptions: diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDsn.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDsn.h index 206e800..db3f4ba 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDsn.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryDsn.h @@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN - (NSString *)getHash; -#if !SDK_v9 +#if !SDK_V9 - (NSURL *)getStoreEndpoint DEPRECATED_MSG_ATTRIBUTE("This endpoint is no longer used"); #endif // !SDK_V9 - (NSURL *)getEnvelopeEndpoint; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelope.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelope.h index 4b8af99..689f09e 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelope.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelope.h @@ -4,18 +4,7 @@ # import "PrivatesHeader.h" #endif -#if COCOAPODS @class SentrySdkInfo; -#else - -# if __has_include() -# import -# else -# import "SentrySdkInfo.h" -# endif - -#endif - @class SentryAttachment; @class SentryEnvelopeItemHeader; @class SentryEvent; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemHeader.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemHeader.h index 3df7c32..89800fb 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemHeader.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemHeader.h @@ -5,11 +5,17 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN -@interface SentryEnvelopeItemHeader : NSObject +@interface SentryEnvelopeItemHeader : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT - (instancetype)initWithType:(NSString *)type length:(NSUInteger)length NS_DESIGNATED_INITIALIZER; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemType.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemType.h index 24d150a..4775ab4 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemType.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryEnvelopeItemType.h @@ -16,3 +16,4 @@ static NSString *const SentryEnvelopeItemTypeProfile = @"profile"; static NSString *const SentryEnvelopeItemTypeReplayVideo = @"replay_video"; static NSString *const SentryEnvelopeItemTypeStatsd = @"statsd"; static NSString *const SentryEnvelopeItemTypeProfileChunk = @"profile_chunk"; +static NSString *const SentryEnvelopeItemTypeLog = @"log"; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryException.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryException.h index a3d37a2..5bd903c 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryException.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryException.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -14,7 +16,11 @@ NS_ASSUME_NONNULL_BEGIN @class SentryStacktrace; NS_SWIFT_NAME(Exception) -@interface SentryException : NSObject +@interface SentryException : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFeedbackAPI.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFeedbackAPI.h index be068ce..0252f34 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFeedbackAPI.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFeedbackAPI.h @@ -12,7 +12,6 @@ NS_ASSUME_NONNULL_BEGIN -API_AVAILABLE(ios(13.0)) @interface SentryFeedbackAPI : NSObject /** @@ -21,7 +20,8 @@ API_AVAILABLE(ios(13.0)) * @seealso See @c SentryOptions.configureUserFeedback to configure the widget. * @note User feedback widget is only available for iOS 13 or later. */ -- (void)showWidget API_AVAILABLE(ios(13.0)); +- (void)showWidget API_AVAILABLE(ios(13.0)) + NS_EXTENSION_UNAVAILABLE("Sentry User Feedback UI cannot be used from app extensions."); /** * Hide the feedback widget button. @@ -29,7 +29,8 @@ API_AVAILABLE(ios(13.0)) * @seealso See @c SentryOptions.configureUserFeedback to configure the widget. * @note User feedback widget is only available for iOS 13 or later. */ -- (void)hideWidget API_AVAILABLE(ios(13.0)); +- (void)hideWidget API_AVAILABLE(ios(13.0)) + NS_EXTENSION_UNAVAILABLE("Sentry User Feedback UI cannot be used from app extensions."); @end diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFrame.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFrame.h index 5ec3057..c459239 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFrame.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFrame.h @@ -6,12 +6,17 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN NS_SWIFT_NAME(Frame) -@interface SentryFrame : NSObject +@interface SentryFrame : NSObject +#if !SDK_V9 + +#endif /** * SymbolAddress of the frame @@ -69,6 +74,24 @@ NS_SWIFT_NAME(Frame) */ @property (nonatomic, copy) NSNumber *_Nullable columnNumber; +/** + * Source code line at the error location. + * Mostly used for Godot errors. + */ +@property (nonatomic, copy) NSString *_Nullable contextLine; + +/** + * Source code lines before the error location (up to 5 lines). + * Mostly used for Godot errors. + */ +@property (nonatomic, copy) NSArray *_Nullable preContext; + +/** + * Source code lines after the error location (up to 5 lines). + * Mostly used for Godot errors. + */ +@property (nonatomic, copy) NSArray *_Nullable postContext; + /** * Determines if the Frame is inApp or not */ @@ -79,6 +102,12 @@ NS_SWIFT_NAME(Frame) */ @property (nonatomic, copy) NSNumber *_Nullable stackStart; +/** + * A mapping of variables which were available within this frame. + * Mostly used for Godot errors. + */ +@property (nonatomic, copy) NSDictionary *_Nullable vars; + - (instancetype)init; + (instancetype)new NS_UNAVAILABLE; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFramesTracker.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFramesTracker.h index 54468a5..3fb476f 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFramesTracker.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryFramesTracker.h @@ -15,7 +15,7 @@ @class SentryDisplayLinkWrapper; @protocol SentryCurrentDateProvider; @class SentryDispatchQueueWrapper; -@class SentryNSNotificationCenterWrapper; +@protocol SentryNSNotificationCenterWrapper; @class SentryScreenFrames; @class SentryFramesDelayResult; @@ -43,7 +43,7 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithDisplayLinkWrapper:(SentryDisplayLinkWrapper *)displayLinkWrapper dateProvider:(id)dateProvider dispatchQueueWrapper:(SentryDispatchQueueWrapper *)dispatchQueueWrapper - notificationCenter:(SentryNSNotificationCenterWrapper *)notificationCenter + notificationCenter:(id)notificationCenter keepDelayedFramesDuration:(CFTimeInterval)keepDelayedFramesDuration; - (SentryScreenFrames *)currentFrames; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryGeo.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryGeo.h index 17de427..88fd241 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryGeo.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryGeo.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -21,7 +23,12 @@ NS_ASSUME_NONNULL_BEGIN /// } /// } NS_SWIFT_NAME(Geo) -@interface SentryGeo : NSObject +@interface SentryGeo : NSObject +#if !SDK_V9 + +#else + +#endif /** * Optional: Human readable city name. diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryHub.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryHub.h index 42c2ef6..fcdf786 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryHub.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryHub.h @@ -12,7 +12,6 @@ @class SentryEvent; @class SentryFeedback; @class SentryId; -@class SentryMetricsAPI; @class SentryScope; @class SentryTransactionContext; @class SentryUser; @@ -25,8 +24,6 @@ SENTRY_NO_INIT - (instancetype)initWithClient:(SentryClient *_Nullable)client andScope:(SentryScope *_Nullable)scope; -@property (nonatomic, readonly) SentryMetricsAPI *metrics; - /** * Starts a new SentrySession. If there's a running SentrySession, it ends it before starting the * new one. You can use this method in combination with endSession to manually track SentrySessions. diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMechanism.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMechanism.h index d2bf603..68643c0 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMechanism.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMechanism.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -14,7 +16,11 @@ NS_ASSUME_NONNULL_BEGIN @class SentryMechanismMeta; NS_SWIFT_NAME(Mechanism) -@interface SentryMechanism : NSObject +@interface SentryMechanism : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMechanismMeta.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMechanismMeta.h index 9f6dff6..3b57a21 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMechanismMeta.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMechanismMeta.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif @class SentryNSError; @@ -18,7 +20,10 @@ NS_ASSUME_NONNULL_BEGIN * @see https://develop.sentry.dev/sdk/event-payloads/exception/#meta-information. */ NS_SWIFT_NAME(MechanismMeta) -@interface SentryMechanismMeta : NSObject +@interface SentryMechanismMeta : NSObject +#if !SDK_V9 + +#endif - (instancetype)init; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMessage.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMessage.h index 59af411..c704d28 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMessage.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryMessage.h @@ -6,7 +6,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @@ -15,7 +17,11 @@ NS_ASSUME_NONNULL_BEGIN * and structured parameters. This can help to group similar messages into the same issue. * @see https://develop.sentry.dev/sdk/event-payloads/message/ */ -@interface SentryMessage : NSObject +@interface SentryMessage : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryNSError.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryNSError.h index c58d542..40620c3 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryNSError.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryNSError.h @@ -6,14 +6,20 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN /** * Sentry representation of an @c NSError to send to Sentry. */ -@interface SentryNSError : NSObject +@interface SentryNSError : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions+HybridSDKs.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions+HybridSDKs.h deleted file mode 100644 index 9709ca7..0000000 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions+HybridSDKs.h +++ /dev/null @@ -1,16 +0,0 @@ -#if __has_include() -# import -#else -# import "SentryOptions.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface SentryOptions () - -- (_Nullable instancetype)initWithDict:(NSDictionary *)options - didFailWithError:(NSError *_Nullable *_Nullable)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions+Private.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions+Private.h index 58219cd..741ead6 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions+Private.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions+Private.h @@ -11,13 +11,42 @@ FOUNDATION_EXPORT NSString *const kSentryDefaultEnvironment; @interface SentryOptions () #if SENTRY_TARGET_PROFILING_SUPPORTED @property (nonatomic, assign) BOOL enableProfiling_DEPRECATED_TEST_ONLY; + +# if !SDK_V9 +/** + * If continuous profiling mode v1 ("beta") is enabled. + * @note Not for use with launch profiles. See functions in @c SentryLaunchProfiling . + */ - (BOOL)isContinuousProfilingEnabled; +# endif // !SDK_V9 + +/** + * If UI profiling mode ("continuous v2") is enabled. + * @note Not for use with launch profiles. See functions in @c SentryLaunchProfiling . + */ - (BOOL)isContinuousProfilingV2Enabled; + +/** + * Whether or not the SDK was configured with a profile mode that automatically starts and tracks + * profiles with traces. + * @note Not for use with launch profiles. See functions in @c SentryLaunchProfiling . + */ - (BOOL)isProfilingCorrelatedToTraces; + +/** + * UI Profiling options set on SDK start. + * @note Not for use with launch profiles. See functions in @c SentryLaunchProfiling . + */ @property (nonatomic, nullable, strong) SentryProfileOptions *profiling; #endif // SENTRY_TARGET_PROFILING_SUPPORTED -@property (nonatomic, readonly, class) NSArray *defaultIntegrationClasses; +#if SENTRY_TARGET_REPLAY_SUPPORTED + +- (BOOL)enableViewRendererV2; + +- (BOOL)enableFastViewRendering; + +#endif // # SENTRY_TARGET_REPLAY_SUPPORTED @property (nonatomic, strong, nullable) SentryUserFeedbackConfiguration *userFeedbackConfiguration API_AVAILABLE(ios(13.0)); diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions.h index b1d9ae1..28d51ec 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptions.h @@ -156,6 +156,14 @@ NS_SWIFT_NAME(Options) */ @property (nullable, nonatomic, copy) SentryBeforeSendSpanCallback beforeSendSpan NS_SWIFT_SENDABLE; +#if !SWIFT_PACKAGE +/** + * Use this callback to drop or modify a log before the SDK sends it to Sentry. Return @c nil to + * drop the log. + */ +@property (nullable, nonatomic, copy) SentryBeforeSendLogCallback beforeSendLog NS_SWIFT_SENDABLE; +#endif // !SWIFT_PACKAGE + /** * This block can be used to modify the event before it will be serialized and sent. */ @@ -191,10 +199,14 @@ NS_SWIFT_NAME(Options) @property (nullable, nonatomic, copy) SentryOnCrashedLastRunCallback onCrashedLastRun NS_SWIFT_SENDABLE; +#if !SDK_V9 /** * Array of integrations to install. */ -@property (nullable, nonatomic, copy) NSArray *integrations; +@property (nullable, nonatomic, copy) NSArray *integrations DEPRECATED_MSG_ATTRIBUTE( + "Setting `SentryOptions.integrations` is deprecated. Integrations should be enabled or " + "disabled using their respective `SentryOptions.enable*` property."); +#endif // !SDK_V9 /** * Array of default integrations. Will be used if @c integrations is @c nil . @@ -398,6 +410,7 @@ NS_SWIFT_NAME(Options) */ @property (nonatomic, assign) BOOL enableFileIOTracing; +#if !SDK_V9 /** * Indicates whether tracing should be enabled. * @discussion Enabling this sets @c tracesSampleRate to @c 1 if both @c tracesSampleRate and @@ -406,6 +419,7 @@ NS_SWIFT_NAME(Options) */ @property (nonatomic) BOOL enableTracing DEPRECATED_MSG_ATTRIBUTE("Use tracesSampleRate or tracesSampler instead"); +#endif // !SDK_V9 /** * Indicates the percentage of the tracing data that is collected. @@ -530,6 +544,7 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull */ @property (nullable, nonatomic, copy) SentryProfilingConfigurationBlock configureProfiling; +# if !SDK_V9 /** * @warning This is an experimental feature and may still have bugs. * Set to @c YES to run the profiler as early as possible in an app launch, before you would @@ -543,7 +558,9 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @c SentryProfileOptions.startOnAppStart and @c SentryProfileOptions.lifecycle . * @note Profiling is automatically disabled if a thread sanitizer is attached. */ -@property (nonatomic, assign) BOOL enableAppLaunchProfiling; +@property (nonatomic, assign) BOOL enableAppLaunchProfiling DEPRECATED_MSG_ATTRIBUTE( + "This property is deprecated and will be removed in a future version of the SDK. See " + "SentryProfileOptions.startOnAppStart and SentryProfileOptions.lifecycle"); /** * @note Profiling is not supported on watchOS or tvOS. @@ -570,7 +587,9 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @warning This property is deprecated and will be removed in a future version of the SDK. See * @c SentryProfileOptions.sessionSampleRate. */ -@property (nullable, nonatomic, strong) NSNumber *profilesSampleRate; +@property (nullable, nonatomic, strong) NSNumber *profilesSampleRate DEPRECATED_MSG_ATTRIBUTE( + "This property is deprecated and will be removed in a future version of the SDK. See " + "SentryProfileOptions.sessionSampleRate"); /** * @note Profiling is not supported on watchOS or tvOS. @@ -584,7 +603,10 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @warning This property is deprecated and will be removed in a future version of the SDK. See * @c SentryProfileOptions.sessionSampleRate . */ -@property (nullable, nonatomic) SentryTracesSamplerCallback profilesSampler NS_SWIFT_SENDABLE; +@property (nullable, nonatomic) + SentryTracesSamplerCallback profilesSampler NS_SWIFT_SENDABLE DEPRECATED_MSG_ATTRIBUTE( + "This property is deprecated and will be removed in a future version of the SDK. See " + "SentryProfileOptions.sessionSampleRate"); /** * If profiling should be enabled or not. @@ -597,7 +619,8 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @note Profiling is automatically disabled if a thread sanitizer is attached. * @warning This property is deprecated and will be removed in a future version of the SDK. */ -@property (nonatomic, assign, readonly) BOOL isProfilingEnabled; +@property (nonatomic, assign, readonly) BOOL isProfilingEnabled DEPRECATED_MSG_ATTRIBUTE( + "This property is deprecated and will be removed in a future version of the SDK"); /** * @brief Whether to enable the sampling profiler. @@ -611,6 +634,7 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull @property (nonatomic, assign) BOOL enableProfiling DEPRECATED_MSG_ATTRIBUTE( "Use profilesSampleRate or profilesSampler instead. This property will be removed in a future " "version of the SDK"); +# endif // !SDK_V9 #endif // SENTRY_TARGET_PROFILING_SUPPORTED /** @@ -630,6 +654,7 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull #if SENTRY_UIKIT_AVAILABLE +# if !SDK_V9 /** * AppHangTrackingV2 can differentiate between fully-blocking and non-fully blocking app hangs. * fully-blocking app hang is when the main thread is stuck completely, and the app can't render a @@ -649,6 +674,8 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull */ @property (nonatomic, assign) BOOL enableAppHangTrackingV2; +# endif // !SDK_V9 + /** * When enabled the SDK reports non-fully-blocking app hangs. A non-fully-blocking app hang is when * the app appears stuck to the user but can still render a few frames. For more information see @c @@ -799,7 +826,8 @@ typedef void (^SentryProfilingConfigurationBlock)(SentryProfileOptions *_Nonnull * @note User feedback widget is only available for iOS 13 or later. */ @property (nonatomic, copy, nullable) - SentryUserFeedbackConfigurationBlock configureUserFeedback API_AVAILABLE(ios(13.0)); + SentryUserFeedbackConfigurationBlock configureUserFeedback API_AVAILABLE(ios(13.0)) + NS_EXTENSION_UNAVAILABLE("Sentry User Feedback UI cannot be used from app extensions."); #endif // TARGET_OS_IOS && SENTRY_HAS_UIKIT diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptionsInternal.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptionsInternal.h new file mode 100644 index 0000000..205f320 --- /dev/null +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryOptionsInternal.h @@ -0,0 +1,16 @@ +#import + +@class SentryOptions; + +NS_ASSUME_NONNULL_BEGIN + +@interface SentryOptionsInternal : NSObject + +@property (nonatomic, readonly, class) NSArray *defaultIntegrationClasses; + ++ (nullable SentryOptions *)initWithDict:(NSDictionary *)options + didFailWithError:(NSError *_Nullable *_Nullable)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryReplayApi.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryReplayApi.h index 1065370..5872c92 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryReplayApi.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryReplayApi.h @@ -52,6 +52,8 @@ NS_ASSUME_NONNULL_BEGIN * This will only work if the debbuger is attached and it will * cause some slow frames. * + * @note This method must be called from the main thread. + * * @warning This is an experimental feature and may still have bugs. * Do not use this is production. */ @@ -67,6 +69,8 @@ NS_ASSUME_NONNULL_BEGIN * * @param opacity The opacity of the overlay. * + * @note This method must be called from the main thread. + * * @warning This is an experimental feature and may still have bugs. * Do not use this is production. */ @@ -75,6 +79,8 @@ NS_ASSUME_NONNULL_BEGIN /** * Removes the overlay that shows replay masking. * + * @note This method must be called from the main thread. + * * @warning This is an experimental feature and may still have bugs. * Do not use this is production. */ diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryRequest.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryRequest.h index 2a0dc30..dcbcea3 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryRequest.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryRequest.h @@ -5,11 +5,16 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN -@interface SentryRequest : NSObject +@interface SentryRequest : NSObject +#if !SDK_V9 + +#endif /** * Optional: HTTP response body size. diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySDK+Private.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySDK+Private.h index 011dfa6..b360f4e 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySDK+Private.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySDK+Private.h @@ -4,10 +4,10 @@ # import "SentryProfilingConditionals.h" #endif -#if __has_include() -# import +#if __has_include() +# import #else -# import "SentrySDK.h" +# import "SentrySDKInternal.h" #endif @class SentryAppStartMeasurement; @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface SentrySDK () +@interface SentrySDKInternal () + (void)captureFatalEvent:(SentryEvent *)event; diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySDK.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySDK.h deleted file mode 100644 index 4259f87..0000000 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySDK.h +++ /dev/null @@ -1,424 +0,0 @@ -#if __has_include() -# import -#elif __has_include() -# import -#else -# import -#endif - -@protocol SentrySpan; - -@class SentryBreadcrumb; -@class SentryEvent; -@class SentryFeedback; -@class SentryFeedbackAPI; -@class SentryId; -@class SentryMetricsAPI; -@class SentryOptions; -@class SentryReplayApi; -@class SentryScope; -@class SentryTransactionContext; -@class SentryUser; -@class SentryUserFeedback; -@class UIView; - -NS_ASSUME_NONNULL_BEGIN - -/** - * The main entry point for the SentrySDK. - * We recommend using @c +[startWithConfigureOptions:] to initialize Sentry. - */ -@interface SentrySDK : NSObject -SENTRY_NO_INIT - -/** - * The current active transaction or span bound to the scope. - */ -@property (nullable, class, nonatomic, readonly) id span; - -/** - * Indicates whether the SentrySDK is enabled. - */ -@property (class, nonatomic, readonly) BOOL isEnabled; - -@property (class, nonatomic, readonly) SentryMetricsAPI *metrics; - -#if SENTRY_TARGET_REPLAY_SUPPORTED -/** - * API to control session replay - */ -@property (class, nonatomic, readonly) SentryReplayApi *replay; -#endif - -/** - * Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to - * set a valid DSN. - * - * @discussion Call this method on the main thread. When calling it from a background thread, the - * SDK starts on the main thread async. - */ -+ (void)startWithOptions:(SentryOptions *)options NS_SWIFT_NAME(start(options:)); - -/** - * Inits and configures Sentry (SentryHub, SentryClient) and sets up all integrations. Make sure to - * set a valid DSN. - * - * @discussion Call this method on the main thread. When calling it from a background thread, the - * SDK starts on the main thread async. - */ -+ (void)startWithConfigureOptions:(void (^)(SentryOptions *options))configureOptions - NS_SWIFT_NAME(start(configureOptions:)); - -/** - * Captures a manually created event and sends it to Sentry. - * @param event The event to send to Sentry. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureEvent:(SentryEvent *)event NS_SWIFT_NAME(capture(event:)); - -/** - * Captures a manually created event and sends it to Sentry. Only the data in this scope object will - * be added to the event. The global scope will be ignored. - * @param event The event to send to Sentry. - * @param scope The scope containing event metadata. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureEvent:(SentryEvent *)event - withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(event:scope:)); - -/** - * Captures a manually created event and sends it to Sentry. Maintains the global scope but mutates - * scope data for only this call. - * @param event The event to send to Sentry. - * @param block The block mutating the scope only for this call. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureEvent:(SentryEvent *)event - withScopeBlock:(void (^)(SentryScope *scope))block NS_SWIFT_NAME(capture(event:block:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param name The transaction name. - * @param operation Short code identifying the type of operation the span is measuring. - * @return The created transaction. - */ -+ (id)startTransactionWithName:(NSString *)name - operation:(NSString *)operation - NS_SWIFT_NAME(startTransaction(name:operation:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param name The transaction name. - * @param operation Short code identifying the type of operation the span is measuring. - * @param bindToScope Indicates whether the SDK should bind the new transaction to the scope. - * @return The created transaction. - */ -+ (id)startTransactionWithName:(NSString *)name - operation:(NSString *)operation - bindToScope:(BOOL)bindToScope - NS_SWIFT_NAME(startTransaction(name:operation:bindToScope:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param transactionContext The transaction context. - * @return The created transaction. - */ -+ (id)startTransactionWithContext:(SentryTransactionContext *)transactionContext - NS_SWIFT_NAME(startTransaction(transactionContext:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param transactionContext The transaction context. - * @param bindToScope Indicates whether the SDK should bind the new transaction to the scope. - * @return The created transaction. - */ -+ (id)startTransactionWithContext:(SentryTransactionContext *)transactionContext - bindToScope:(BOOL)bindToScope - NS_SWIFT_NAME(startTransaction(transactionContext:bindToScope:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param transactionContext The transaction context. - * @param bindToScope Indicates whether the SDK should bind the new transaction to the scope. - * @param customSamplingContext Additional information about the sampling context. - * @return The created transaction. - */ -+ (id)startTransactionWithContext:(SentryTransactionContext *)transactionContext - bindToScope:(BOOL)bindToScope - customSamplingContext:(NSDictionary *)customSamplingContext - NS_SWIFT_NAME(startTransaction(transactionContext:bindToScope:customSamplingContext:)); - -/** - * Creates a transaction, binds it to the hub and returns the instance. - * @param transactionContext The transaction context. - * @param customSamplingContext Additional information about the sampling context. - * @return The created transaction. - */ -+ (id)startTransactionWithContext:(SentryTransactionContext *)transactionContext - customSamplingContext:(NSDictionary *)customSamplingContext - NS_SWIFT_NAME(startTransaction(transactionContext:customSamplingContext:)); - -/** - * Captures an error event and sends it to Sentry. - * @param error The error to send to Sentry. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureError:(NSError *)error NS_SWIFT_NAME(capture(error:)); - -/** - * Captures an error event and sends it to Sentry. Only the data in this scope object will be added - * to the event. The global scope will be ignored. - * @param error The error to send to Sentry. - * @param scope The scope containing event metadata. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureError:(NSError *)error - withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(error:scope:)); - -/** - * Captures an error event and sends it to Sentry. Maintains the global scope but mutates scope data - * for only this call. - * @param error The error to send to Sentry. - * @param block The block mutating the scope only for this call. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureError:(NSError *)error - withScopeBlock:(void (^)(SentryScope *scope))block NS_SWIFT_NAME(capture(error:block:)); - -/** - * Captures an exception event and sends it to Sentry. - * @param exception The exception to send to Sentry. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureException:(NSException *)exception NS_SWIFT_NAME(capture(exception:)); - -/** - * Captures an exception event and sends it to Sentry. Only the data in this scope object will be - * added to the event. The global scope will be ignored. - * @param exception The exception to send to Sentry. - * @param scope The scope containing event metadata. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureException:(NSException *)exception - withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(exception:scope:)); - -/** - * Captures an exception event and sends it to Sentry. Maintains the global scope but mutates scope - * data for only this call. - * @param exception The exception to send to Sentry. - * @param block The block mutating the scope only for this call. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureException:(NSException *)exception - withScopeBlock:(void (^)(SentryScope *scope))block - NS_SWIFT_NAME(capture(exception:block:)); - -/** - * Captures a message event and sends it to Sentry. - * @param message The message to send to Sentry. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureMessage:(NSString *)message NS_SWIFT_NAME(capture(message:)); - -/** - * Captures a message event and sends it to Sentry. Only the data in this scope object will be added - * to the event. The global scope will be ignored. - * @param message The message to send to Sentry. - * @param scope The scope containing event metadata. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureMessage:(NSString *)message - withScope:(SentryScope *)scope NS_SWIFT_NAME(capture(message:scope:)); - -/** - * Captures a message event and sends it to Sentry. Maintains the global scope but mutates scope - * data for only this call. - * @param message The message to send to Sentry. - * @param block The block mutating the scope only for this call. - * @return The @c SentryId of the event or @c SentryId.empty if the event is not sent. - * - */ -+ (SentryId *)captureMessage:(NSString *)message - withScopeBlock:(void (^)(SentryScope *scope))block - NS_SWIFT_NAME(capture(message:block:)); - -#if !SDK_V9 -/** - * Captures user feedback that was manually gathered and sends it to Sentry. - * @param userFeedback The user feedback to send to Sentry. - * @deprecated Use @c SentrySDK.captureFeedback or use or configure our new managed UX with - * @c SentryOptions.configureUserFeedback . - */ -+ (void)captureUserFeedback:(SentryUserFeedback *)userFeedback - NS_SWIFT_NAME(capture(userFeedback:)) DEPRECATED_MSG_ATTRIBUTE( - "Use SentrySDK.captureFeedback or use or configure our new managed UX with " - "SentryOptions.configureUserFeedback."); -#endif // !SDK_V9 - -/** - * Captures user feedback that was manually gathered and sends it to Sentry. - * @warning This is an experimental feature and may still have bugs. - * @param feedback The feedback to send to Sentry. - * @note If you'd prefer not to have to build the UI required to gather the feedback from the user, - * see @c SentryOptions.configureUserFeedback to customize a fully managed integration. See - * https://docs.sentry.io/platforms/apple/user-feedback/ for more information. - */ -+ (void)captureFeedback:(SentryFeedback *)feedback NS_SWIFT_NAME(capture(feedback:)); - -#if TARGET_OS_IOS && SENTRY_HAS_UIKIT - -@property (nonatomic, class, readonly) SentryFeedbackAPI *feedback API_AVAILABLE(ios(13.0)); - -#endif // TARGET_OS_IOS && SENTRY_HAS_UIKIT - -/** - * Adds a Breadcrumb to the current Scope of the current Hub. If the total number of breadcrumbs - * exceeds the @c SentryOptions.maxBreadcrumbs the SDK removes the oldest breadcrumb. - * @param crumb The Breadcrumb to add to the current Scope of the current Hub. - */ -+ (void)addBreadcrumb:(SentryBreadcrumb *)crumb NS_SWIFT_NAME(addBreadcrumb(_:)); - -/** - * Use this method to modify the current Scope of the current Hub. The SDK uses the Scope to attach - * contextual data to events. - * @param callback The callback for configuring the current Scope of the current Hub. - */ -+ (void)configureScope:(void (^)(SentryScope *scope))callback; - -/** - * Checks if the last program execution terminated with a crash. - */ -@property (nonatomic, class, readonly) BOOL crashedLastRun; - -/** - * Checks if the SDK detected a start-up crash during SDK initialization. - * - * @note The SDK init waits synchronously for up to 5 seconds to flush out events if the app crashes - * within 2 seconds after the SDK init. - * - * @return @c YES if the SDK detected a start-up crash and @c NO if not. - */ -@property (nonatomic, class, readonly) BOOL detectedStartUpCrash; - -/** - * Set user to the current Scope of the current Hub. - * @param user The user to set to the current Scope. - * - * @note You must start the SDK before calling this method, otherwise it doesn't set the user. - */ -+ (void)setUser:(nullable SentryUser *)user; - -/** - * Starts a new SentrySession. If there's a running @c SentrySession, it ends it before starting the - * new one. You can use this method in combination with endSession to manually track - * @c SentrySessions. The SDK uses SentrySession to inform Sentry about release and project - * associated project health. - */ -+ (void)startSession; - -/** - * Ends the current @c SentrySession. You can use this method in combination with @c startSession to - * manually track @c SentrySessions. The SDK uses SentrySession to inform Sentry about release and - * project associated project health. - */ -+ (void)endSession; - -/** - * This forces a crash, useful to test the @c SentryCrash integration. - * - * @note The SDK can't report a crash when a debugger is attached. Your application needs to run - * without a debugger attached to capture the crash and send it to Sentry the next time you launch - * your application. - */ -+ (void)crash; - -/** - * Reports to the ongoing UIViewController transaction - * that the screen contents are fully loaded and displayed, - * which will create a new span. - * - * For more information see our documentation: - * https://docs.sentry.io/platforms/cocoa/performance/instrumentation/automatic-instrumentation/#time-to-full-display - */ -+ (void)reportFullyDisplayed; - -/** - * Pauses sending detected app hangs to Sentry. - * - * @discussion This method doesn't close the detection of app hangs. Instead, the app hang detection - * will ignore detected app hangs until you call @c resumeAppHangTracking. - */ -+ (void)pauseAppHangTracking; - -/** - * Resumes sending detected app hangs to Sentry. - */ -+ (void)resumeAppHangTracking; - -/** - * Waits synchronously for the SDK to flush out all queued and cached items for up to the specified - * timeout in seconds. If there is no internet connection, the function returns immediately. The SDK - * doesn't dispose the client or the hub. - * @param timeout The time to wait for the SDK to complete the flush. - */ -+ (void)flush:(NSTimeInterval)timeout NS_SWIFT_NAME(flush(timeout:)); - -/** - * Closes the SDK, uninstalls all the integrations, and calls flush with - * @c SentryOptions.shutdownTimeInterval . - */ -+ (void)close; - -#if SENTRY_TARGET_PROFILING_SUPPORTED -/** - * Start a new continuous profiling session if one is not already running. - * @warning Continuous profiling mode is experimental and may still contain bugs. - * @note Unlike transaction-based profiling, continuous profiling does not take into account - * @c SentryOptions.profilesSampleRate or @c SentryOptions.profilesSampler . If either of those - * options are set, this method does nothing. - * @note Taking into account the above note, if @c SentryOptions.configureProfiling is not set, - * calls to this method will always start a profile if one is not already running. This includes app - * launch profiles configured with @c SentryOptions.enableAppLaunchProfiling . - * @note If neither @c SentryOptions.profilesSampleRate nor @c SentryOptions.profilesSampler are - * set, and @c SentryOptions.configureProfiling is set, this method does nothing if the profiling - * session is not sampled with respect to @c SentryOptions.profileSessionSampleRate , or if it is - * sampled but the profiler is already running. - * @note If neither @c SentryOptions.profilesSampleRate nor @c SentryOptions.profilesSampler are - * set, and @c SentryOptions.configureProfiling is set, this method does nothing if - * @c SentryOptions.profileLifecycle is set to @c trace . In this scenario, the profiler is - * automatically started and stopped depending on whether there is an active sampled span, so it is - * not permitted to manually start profiling. - * @note Profiling is automatically disabled if a thread sanitizer is attached. - * @seealso https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling - */ -+ (void)startProfiler; - -/** - * Stop a continuous profiling session if there is one ongoing. - * @warning Continuous profiling mode is experimental and may still contain bugs. - * @note Does nothing if @c SentryOptions.profileLifecycle is set to @c trace . - * @note Does not immediately stop the profiler. Profiling data is uploaded at regular timed - * intervals; when the current interval completes, then the profiler stops and the data gathered - * during that last interval is uploaded. - * @note If a new call to @c startProfiler that would start the profiler is made before the last - * interval completes, the profiler will continue running until another call to stop is made. - * @note Profiling is automatically disabled if a thread sanitizer is attached. - * @seealso https://docs.sentry.io/platforms/apple/guides/ios/profiling/#continuous-profiling - */ -+ (void)stopProfiler; -#endif // SENTRY_TARGET_PROFILING_SUPPORTED - -@end - -NS_ASSUME_NONNULL_END diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryScope.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryScope.h index d353115..e29fc2c 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryScope.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryScope.h @@ -5,7 +5,9 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif // SDK_V9 #import SENTRY_HEADER(SentrySpanProtocol) @class SentryAttachment; @@ -22,7 +24,10 @@ NS_ASSUME_NONNULL_BEGIN * https://docs.sentry.io/platforms/apple/enriching-events/scopes/#whats-a-scope-whats-a-hub */ NS_SWIFT_NAME(Scope) -@interface SentryScope : NSObject +@interface SentryScope : NSObject +#if !SDK_V9 + +#endif // !SDK_V9 /** * Returns current Span or Transaction. @@ -115,10 +120,12 @@ NS_SWIFT_NAME(Scope) */ - (void)clearBreadcrumbs; +#if !SDK_V9 /** * Serializes the Scope to JSON */ - (NSDictionary *)serialize; +#endif // !SDK_V9 /** * Sets context values which will overwrite SentryEvent.context when event is @@ -166,11 +173,6 @@ NS_SWIFT_NAME(Scope) "now considered unsafe and deprecated. Use `span` instead."); #endif // !SDK_V9 -/** - * Returns the current span. - */ -- (id _Nullable)span; - @end NS_ASSUME_NONNULL_END diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySpanContext.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySpanContext.h index 5b65e96..89c7fd3 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySpanContext.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentrySpanContext.h @@ -6,7 +6,9 @@ # import #endif #import SENTRY_HEADER(SentrySampleDecision) -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif #import SENTRY_HEADER(SentrySpanStatus) NS_ASSUME_NONNULL_BEGIN @@ -17,7 +19,11 @@ NS_ASSUME_NONNULL_BEGIN static NSString const *SENTRY_TRACE_TYPE = @"trace"; NS_SWIFT_NAME(SpanContext) -@interface SentrySpanContext : NSObject +@interface SentrySpanContext : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryStacktrace.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryStacktrace.h index 5c8d11f..0f6b5d4 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryStacktrace.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryStacktrace.h @@ -6,13 +6,19 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @class SentryFrame; -@interface SentryStacktrace : NSObject +@interface SentryStacktrace : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryThread.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryThread.h index cbf9422..45e1b4d 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryThread.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryThread.h @@ -5,13 +5,19 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif NS_ASSUME_NONNULL_BEGIN @class SentryStacktrace; -@interface SentryThread : NSObject +@interface SentryThread : NSObject +#if !SDK_V9 + +#endif + SENTRY_NO_INIT /** diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryTraceContext.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryTraceContext.h index 7904404..b54d08e 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryTraceContext.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryTraceContext.h @@ -1,7 +1,12 @@ -#if __has_include() -# import +#if __has_include() +# import +#elif __has_include() +# import #else -# import "SentrySerializable.h" +# import +#endif +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) #endif NS_ASSUME_NONNULL_BEGIN @@ -14,7 +19,10 @@ NS_ASSUME_NONNULL_BEGIN @class SentryUser; NS_SWIFT_NAME(TraceContext) -@interface SentryTraceContext : NSObject +@interface SentryTraceContext : NSObject +#if !SDK_V9 + +#endif /** * UUID V4 encoded as a hexadecimal sequence with no dashes (e.g. 771a43a4192642f0b136d5159a501700) @@ -45,7 +53,9 @@ NS_SWIFT_NAME(TraceContext) /** * A subset of the scope's user context. */ +#if !SDK_V9 @property (nullable, nonatomic, readonly) NSString *userSegment; +#endif /** * Serialized sample rate used for this trace. @@ -75,7 +85,9 @@ NS_SWIFT_NAME(TraceContext) releaseName:(nullable NSString *)releaseName environment:(nullable NSString *)environment transaction:(nullable NSString *)transaction +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif sampleRate:(nullable NSString *)sampleRate sampled:(nullable NSString *)sampled replayId:(nullable NSString *)replayId; @@ -88,7 +100,9 @@ NS_SWIFT_NAME(TraceContext) releaseName:(nullable NSString *)releaseName environment:(nullable NSString *)environment transaction:(nullable NSString *)transaction +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif sampleRate:(nullable NSString *)sampleRate sampleRand:(nullable NSString *)sampleRand sampled:(nullable NSString *)sampled @@ -111,16 +125,29 @@ NS_SWIFT_NAME(TraceContext) scope:(nullable SentryScope *)scope options:(SentryOptions *)options; +#if SDK_V9 /** - * Initializes a SentryTraceContext with data from a traceID, options and userSegment. + * Initializes a SentryTraceContext with data from a traceId, options and replayId. + * + * @param traceId The current tracer. + * @param options The current active options. + * @param replayId The current session replay. + */ +#else +/** + * Initializes a SentryTraceContext with data from a traceId, options, userSegment and replayId. * * @param traceId The current tracer. * @param options The current active options. * @param userSegment You can retrieve this usually from the `scope.userObject.segment`. + * @param replayId The current session replay. */ +#endif - (instancetype)initWithTraceId:(SentryId *)traceId options:(SentryOptions *)options +#if !SDK_V9 userSegment:(nullable NSString *)userSegment +#endif replayId:(nullable NSString *)replayId; /** diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryUser.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryUser.h index 685e786..b1b6fee 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryUser.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryUser.h @@ -5,14 +5,21 @@ #else # import #endif -#import SENTRY_HEADER(SentrySerializable) +#if !SDK_V9 +# import SENTRY_HEADER(SentrySerializable) +#endif // !SDK_V9 NS_ASSUME_NONNULL_BEGIN @class SentryGeo; NS_SWIFT_NAME(User) -@interface SentryUser : NSObject +@interface SentryUser : NSObject +#if SDK_V9 + +#else + +#endif // SDK_V9 /** * Optional: Id of the user @@ -34,12 +41,14 @@ NS_SWIFT_NAME(User) */ @property (atomic, copy) NSString *_Nullable ipAddress; +#if !SDK_V9 /** * The user segment, for apps that divide users in user segments. * @deprecated This field will be removed in the next major version. */ @property (atomic, copy) NSString *_Nullable segment DEPRECATED_MSG_ATTRIBUTE( "This field is deprecated and will be removed in the next major update."); +#endif // !SDK_V9 /** * Optional: Human readable name diff --git a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryWithoutUIKit.h b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryWithoutUIKit.h index 8f419de..508d9b0 100644 --- a/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryWithoutUIKit.h +++ b/Plugins/Sentry/Source/ThirdParty/Mac/include/Sentry/SentryWithoutUIKit.h @@ -35,7 +35,6 @@ FOUNDATION_EXPORT const unsigned char SentryVersionString[]; # import # import # import -# import # import # import # import diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Breakpad/lib/breakpad_client.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Breakpad/lib/breakpad_client.lib deleted file mode 100644 index a3239b0..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Breakpad/lib/breakpad_client.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Breakpad/lib/sentry.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Breakpad/lib/sentry.lib deleted file mode 100644 index 2a9fdfe..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Breakpad/lib/sentry.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/include/sentry.h b/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/include/sentry.h deleted file mode 100644 index ae37205..0000000 --- a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/include/sentry.h +++ /dev/null @@ -1,2577 +0,0 @@ -/** - * sentry-native - * - * sentry-native is a C client to send events to native from - * C and C++ applications. It can work together with breakpad/crashpad - * but also send events on its own. - * - * NOTE on encodings: - * - * Sentry will assume an encoding of UTF-8 for all string data that is captured - * and being sent to sentry as an Event. - * All the functions that are dealing with *paths* will assume an OS-specific - * encoding, typically ANSI on Windows, UTF-8 macOS, and the locale encoding on - * Linux; and they provide wchar-compatible alternatives on Windows which are - * preferred. - * - * NOTE on attachments: - * - * Attachments are read lazily at the time of `sentry_capture_event`, - * `sentry_capture_event_with_scope`, or at time of a hard crash. Relative - * attachment paths will be resolved according to the current working directory - * at the time of envelope creation. When adding and removing attachments, they - * are matched according to their given `path`. No normalization is performed. - * When using the `crashpad` backend on macOS, the list of attachments that will - * be added at the time of a hard crash will be frozen at the time of - * `sentry_init`, and later modifications will not be reflected. - */ - -#ifndef SENTRY_H_INCLUDED -#define SENTRY_H_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -/* common platform detection */ -#ifdef _WIN32 -# define SENTRY_PLATFORM_WINDOWS -# ifdef _GAMING_XBOX_SCARLETT -# define SENTRY_PLATFORM_XBOX_SCARLETT -# endif -#elif defined(__APPLE__) -# include -# if defined(TARGET_OS_OSX) && TARGET_OS_OSX -# define SENTRY_PLATFORM_MACOS -# elif defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE -# define SENTRY_PLATFORM_IOS -# endif -# define SENTRY_PLATFORM_DARWIN -# define SENTRY_PLATFORM_UNIX -#elif defined(__ANDROID__) -# define SENTRY_PLATFORM_ANDROID -# define SENTRY_PLATFORM_LINUX -# define SENTRY_PLATFORM_UNIX -#elif defined(__PROSPERO__) -# define SENTRY_PLATFORM_PS -# define SENTRY_PLATFORM_UNIX -#elif defined(__linux) || defined(__linux__) -# define SENTRY_PLATFORM_LINUX -# define SENTRY_PLATFORM_UNIX -#elif defined(_AIX) -/* IBM i PASE is also counted as AIX */ -# define SENTRY_PLATFORM_AIX -# define SENTRY_PLATFORM_UNIX -#elif defined(__NX__) -# define SENTRY_PLATFORM_NX -#else -# error unsupported platform -#endif - -/* SDK Version */ -#ifndef SENTRY_SDK_NAME -# if defined(SENTRY_PLATFORM_ANDROID) -# define SENTRY_SDK_NAME "sentry.native.android" -# elif defined(SENTRY_PLATFORM_XBOX_SCARLETT) -# define SENTRY_SDK_NAME "sentry.native.xbox" -# else -# define SENTRY_SDK_NAME "sentry.native" -# endif -#endif -#define SENTRY_SDK_VERSION "0.9.1" -#define SENTRY_SDK_USER_AGENT SENTRY_SDK_NAME "/" SENTRY_SDK_VERSION - -/* marks a function as part of the sentry API */ -#ifndef SENTRY_API -# ifdef _WIN32 -# if defined(SENTRY_BUILD_SHARED) /* build dll */ -# define SENTRY_API __declspec(dllexport) -# elif !defined(SENTRY_BUILD_STATIC) /* use dll */ -# define SENTRY_API __declspec(dllimport) -# else /* static library */ -# define SENTRY_API -# endif -# else -# if __GNUC__ >= 4 -# define SENTRY_API __attribute__((visibility("default"))) -# else -# define SENTRY_API -# endif -# endif -#endif - -/* marks a function as experimental api */ -#ifndef SENTRY_EXPERIMENTAL_API -# define SENTRY_EXPERIMENTAL_API SENTRY_API -#endif - -#include -#include -#include - -/* context type dependencies */ -#ifdef _WIN32 -# include -#elif defined(SENTRY_PLATFORM_PS) -# include -#else -# include -#endif - -/** - * The library internally uses the system malloc and free functions to manage - * memory. It does not use realloc. The reason for this is that on unix - * platforms we fall back to a simplistic page allocator once we have - * encountered a SIGSEGV or other terminating signal as malloc is no longer - * safe to use. Since we cannot portably reallocate allocations made on the - * pre-existing allocator we're instead not using realloc. - * - * Note also that after SIGSEGV sentry_free() becomes a noop. - */ - -/** - * Allocates memory with the underlying allocator. - */ -SENTRY_API void *sentry_malloc(size_t size); - -/** - * Releases memory allocated from the underlying allocator. - */ -SENTRY_API void sentry_free(void *ptr); - -/** - * Legacy function. Alias for `sentry_free`. - */ -#define sentry_string_free sentry_free - -/* -- Protocol Value API -- */ - -/** - * Type of a sentry value. - */ -typedef enum { - SENTRY_VALUE_TYPE_NULL, - SENTRY_VALUE_TYPE_BOOL, - SENTRY_VALUE_TYPE_INT32, - SENTRY_VALUE_TYPE_DOUBLE, - SENTRY_VALUE_TYPE_STRING, - SENTRY_VALUE_TYPE_LIST, - SENTRY_VALUE_TYPE_OBJECT, -} sentry_value_type_t; - -/** - * Represents a sentry protocol value. - * - * The members of this type should never be accessed. They are only here - * so that alignment for the type can be properly determined. - * - * Values must be released with `sentry_value_decref`. This lowers the - * internal refcount by one. If the refcount hits zero it's freed. Some - * values like primitives have no refcount (like null) so operations on - * those are no-ops. - * - * In addition values can be frozen. Some values like primitives are always - * frozen but lists and dicts are not and can be frozen on demand. This - * automatically happens for some shared values in the event payload like - * the module list. - */ -union sentry_value_u { - uint64_t _bits; - double _double; -}; -typedef union sentry_value_u sentry_value_t; - -/** - * Increments the reference count on the value. - */ -SENTRY_API void sentry_value_incref(sentry_value_t value); - -/** - * Decrements the reference count on the value. - */ -SENTRY_API void sentry_value_decref(sentry_value_t value); - -/** - * Returns the refcount of a value. - */ -SENTRY_API size_t sentry_value_refcount(sentry_value_t value); - -/** - * Freezes a value. - */ -SENTRY_API void sentry_value_freeze(sentry_value_t value); - -/** - * Checks if a value is frozen. - */ -SENTRY_API int sentry_value_is_frozen(sentry_value_t value); - -/** - * Creates a null value. - */ -SENTRY_API sentry_value_t sentry_value_new_null(void); - -/** - * Creates a new 32-bit signed integer value. - */ -SENTRY_API sentry_value_t sentry_value_new_int32(int32_t value); - -/** - * Creates a new double value. - */ -SENTRY_API sentry_value_t sentry_value_new_double(double value); - -/** - * Creates a new boolean value. - */ -SENTRY_API sentry_value_t sentry_value_new_bool(int value); - -/** - * Creates a new null terminated string. - */ -SENTRY_API sentry_value_t sentry_value_new_string(const char *value); -SENTRY_API sentry_value_t sentry_value_new_string_n( - const char *value, size_t value_len); - -/** - * Creates a new list value. - */ -SENTRY_API sentry_value_t sentry_value_new_list(void); - -/** - * Creates a new object. - */ -SENTRY_API sentry_value_t sentry_value_new_object(void); -/** - * Creates a new user object. - * Will return a sentry_value_new_null if all parameters are null. - * - * This DOES NOT set the user object, this should still be done with - * sentry_set_user(), passing the return of this function as a parameter - */ -SENTRY_API sentry_value_t sentry_value_new_user(const char *id, - const char *username, const char *email, const char *ip_address); -SENTRY_API sentry_value_t sentry_value_new_user_n(const char *id, size_t id_len, - const char *username, size_t username_len, const char *email, - size_t email_len, const char *ip_address, size_t ip_address_len); - -/** - * Returns the type of the value passed. - */ -SENTRY_API sentry_value_type_t sentry_value_get_type(sentry_value_t value); - -/** - * Sets a key to a value in the map. - * - * This moves the ownership of the value into the map. The caller does not - * have to call `sentry_value_decref` on it. - */ -SENTRY_API int sentry_value_set_by_key( - sentry_value_t value, const char *k, sentry_value_t v); - -SENTRY_API int sentry_value_set_by_key_n( - sentry_value_t value, const char *k, size_t k_len, sentry_value_t v); - -/** - * This removes a value from the map by key. - */ -SENTRY_API int sentry_value_remove_by_key(sentry_value_t value, const char *k); -SENTRY_API int sentry_value_remove_by_key_n( - sentry_value_t value, const char *k, size_t k_len); - -/** - * Appends a value to a list. - * - * This moves the ownership of the value into the list. The caller does not - * have to call `sentry_value_decref` on it. - */ -SENTRY_API int sentry_value_append(sentry_value_t value, sentry_value_t v); - -/** - * Inserts a value into the list at a certain position. - * - * This moves the ownership of the value into the list. The caller does not - * have to call `sentry_value_decref` on it. - * - * If the list is shorter than the given index it's automatically extended - * and filled with `null` values. - */ -SENTRY_API int sentry_value_set_by_index( - sentry_value_t value, size_t index, sentry_value_t v); - -/** - * This removes a value from the list by index. - */ -SENTRY_API int sentry_value_remove_by_index(sentry_value_t value, size_t index); - -/** - * Looks up a value in a map by key. If missing a null value is returned. - * The returned value is borrowed. - */ -SENTRY_API sentry_value_t sentry_value_get_by_key( - sentry_value_t value, const char *k); -SENTRY_API sentry_value_t sentry_value_get_by_key_n( - sentry_value_t value, const char *k, size_t k_len); - -/** - * Looks up a value in a map by key. If missing a null value is returned. - * The returned value is owned. - * - * If the caller no longer needs the value it must be released with - * `sentry_value_decref`. - */ -SENTRY_API sentry_value_t sentry_value_get_by_key_owned( - sentry_value_t value, const char *k); -SENTRY_API sentry_value_t sentry_value_get_by_key_owned_n( - sentry_value_t value, const char *k, size_t k_len); - -/** - * Looks up a value in a list by index. If missing a null value is returned. - * The returned value is borrowed. - */ -SENTRY_API sentry_value_t sentry_value_get_by_index( - sentry_value_t value, size_t index); - -/** - * Looks up a value in a list by index. If missing a null value is - * returned. The returned value is owned. - * - * If the caller no longer needs the value it must be released with - * `sentry_value_decref`. - */ -SENTRY_API sentry_value_t sentry_value_get_by_index_owned( - sentry_value_t value, size_t index); - -/** - * Returns the length of the given map or list. - * - * If an item is not a list or map the return value is 0. - */ -SENTRY_API size_t sentry_value_get_length(sentry_value_t value); - -/** - * Converts a value into a 32bit signed integer. - */ -SENTRY_API int32_t sentry_value_as_int32(sentry_value_t value); - -/** - * Converts a value into a double value. - */ -SENTRY_API double sentry_value_as_double(sentry_value_t value); - -/** - * Returns the value as c string. - */ -SENTRY_API const char *sentry_value_as_string(sentry_value_t value); - -/** - * Returns `true` if the value is boolean true. - */ -SENTRY_API int sentry_value_is_true(sentry_value_t value); - -/** - * Returns `true` if the value is null. - */ -SENTRY_API int sentry_value_is_null(sentry_value_t value); - -/** - * Serialize a sentry value to JSON. - * - * The string is freshly allocated and must be freed with - * `sentry_string_free`. - */ -SENTRY_API char *sentry_value_to_json(sentry_value_t value); - -/** - * Sentry levels for events and breadcrumbs. - */ -typedef enum sentry_level_e { - SENTRY_LEVEL_DEBUG = -1, - SENTRY_LEVEL_INFO = 0, - SENTRY_LEVEL_WARNING = 1, - SENTRY_LEVEL_ERROR = 2, - SENTRY_LEVEL_FATAL = 3, -} sentry_level_t; - -/** - * Creates a new empty Event value. - * - * See https://docs.sentry.io/platforms/native/enriching-events/ for how to - * further work with events, and https://develop.sentry.dev/sdk/event-payloads/ - * for a detailed overview of the possible properties of an Event. - */ -SENTRY_API sentry_value_t sentry_value_new_event(void); - -/** - * Creates a new Message Event value. - * - * See https://develop.sentry.dev/sdk/event-payloads/message/ - * - * `logger` can be NULL to omit the logger value. - */ -SENTRY_API sentry_value_t sentry_value_new_message_event( - sentry_level_t level, const char *logger, const char *text); -SENTRY_API sentry_value_t sentry_value_new_message_event_n(sentry_level_t level, - const char *logger, size_t logger_len, const char *text, size_t text_len); - -/** - * Creates a new Breadcrumb with a specific type and message. - * - * See https://develop.sentry.dev/sdk/event-payloads/breadcrumbs/ - * - * Either parameter can be NULL in which case no such attributes is created. - */ -SENTRY_API sentry_value_t sentry_value_new_breadcrumb( - const char *type, const char *message); -SENTRY_API sentry_value_t sentry_value_new_breadcrumb_n( - const char *type, size_t type_len, const char *message, size_t message_len); - -/** - * Creates a new Exception value. - * - * This is intended for capturing language-level exception, such as from a - * try-catch block. `type` and `value` here refer to the exception class and - * a possible description. - * - * See https://develop.sentry.dev/sdk/event-payloads/exception/ - * - * The returned value needs to be attached to an event via - * `sentry_event_add_exception`. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_exception( - const char *type, const char *value); -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_exception_n( - const char *type, size_t type_len, const char *value, size_t value_len); - -/** - * Creates a new Thread value. - * - * See https://develop.sentry.dev/sdk/event-payloads/threads/ - * - * The returned value needs to be attached to an event via - * `sentry_event_add_thread`. - * - * `name` can be NULL. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_thread( - uint64_t id, const char *name); -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_thread_n( - uint64_t id, const char *name, size_t name_len); - -/** - * Creates a new Stack Trace conforming to the Stack Trace Interface. - * - * See https://develop.sentry.dev/sdk/event-payloads/stacktrace/ - * - * The returned object must be attached to either an exception or thread - * object. - * - * If `ips` is NULL the current stack trace is captured, otherwise `len` - * stack trace instruction pointers are attached to the event. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_stacktrace( - void **ips, size_t len); - -/** - * Sets the Stack Trace conforming to the Stack Trace Interface in a value. - * - * The value argument must be either an exception or thread object. - * - * If `ips` is NULL the current stack trace is captured, otherwise `len` stack - * trace instruction pointers are attached to the event. - */ -SENTRY_EXPERIMENTAL_API void sentry_value_set_stacktrace( - sentry_value_t value, void **ips, size_t len); - -/** - * Adds an Exception to an Event value. - * - * This takes ownership of the `exception`. - */ -SENTRY_EXPERIMENTAL_API void sentry_event_add_exception( - sentry_value_t event, sentry_value_t exception); - -/** - * Adds a Thread to an Event value. - * - * This takes ownership of the `thread`. - */ -SENTRY_EXPERIMENTAL_API void sentry_event_add_thread( - sentry_value_t event, sentry_value_t thread); - -/* -- Experimental APIs -- */ - -/** - * Serialize a sentry value to msgpack. - * - * The string is freshly allocated and must be freed with - * `sentry_string_free`. Since msgpack is not zero terminated - * the size is written to the `size_out` parameter. - */ -SENTRY_EXPERIMENTAL_API char *sentry_value_to_msgpack( - sentry_value_t value, size_t *size_out); - -/** - * Adds a stack trace to an event. - * - * The stack trace is added as part of a new thread object. - * This function is **deprecated** in favor of using - * `sentry_value_new_stacktrace` in combination with `sentry_value_new_thread` - * and `sentry_event_add_thread`. - * - * If `ips` is NULL the current stack trace is captured, otherwise `len` - * stack trace instruction pointers are attached to the event. - */ -SENTRY_EXPERIMENTAL_API void sentry_event_value_add_stacktrace( - sentry_value_t event, void **ips, size_t len); - -/** - * This represents the OS dependent user context in the case of a crash, and can - * be used to manually capture a crash. - */ -typedef struct sentry_ucontext_s { -#ifdef _WIN32 - EXCEPTION_POINTERS exception_ptrs; -#elif defined(SENTRY_PLATFORM_PS) - int data; -#else - int signum; - siginfo_t *siginfo; - ucontext_t *user_context; -#endif -} sentry_ucontext_t; - -/** - * Unwinds the stack from the given address. - * - * If the address is given in `addr` the stack is unwound form there. - * Otherwise (NULL is passed) the current instruction pointer is used as - * start address. - * Unwinding with a given `addr` is not supported on all platforms. - * - * The stack trace in the form of instruction-addresses, is written to the - * caller allocated `stacktrace_out`, with up to `max_len` frames being written. - * The actual number of unwound stackframes is returned. - */ -SENTRY_EXPERIMENTAL_API size_t sentry_unwind_stack( - void *addr, void **stacktrace_out, size_t max_len); - -/** - * Unwinds the stack from the given context. - * - * The caller is responsible to construct an appropriate `sentry_ucontext_t`. - * Unwinding from a user context is not supported on all platforms. - * - * The stack trace in the form of instruction-addresses, is written to the - * caller allocated `stacktrace_out`, with up to `max_len` frames being written. - * The actual number of unwound stackframes is returned. - */ -SENTRY_EXPERIMENTAL_API size_t sentry_unwind_stack_from_ucontext( - const sentry_ucontext_t *uctx, void **stacktrace_out, size_t max_len); - -/** - * A UUID - */ -typedef struct sentry_uuid_s { - char bytes[16]; -} sentry_uuid_t; - -/** - * Creates the nil uuid. - */ -SENTRY_API sentry_uuid_t sentry_uuid_nil(void); - -/** - * Creates a new uuid4. - */ -SENTRY_API sentry_uuid_t sentry_uuid_new_v4(void); - -/** - * Parses a uuid from a string. - */ -SENTRY_API sentry_uuid_t sentry_uuid_from_string(const char *str); -SENTRY_API sentry_uuid_t sentry_uuid_from_string_n( - const char *str, size_t str_len); - -/** - * Creates a uuid from bytes. - */ -SENTRY_API sentry_uuid_t sentry_uuid_from_bytes(const char bytes[16]); - -/** - * Checks if the uuid is nil. - */ -SENTRY_API int sentry_uuid_is_nil(const sentry_uuid_t *uuid); - -/** - * Returns the bytes of the uuid. - */ -SENTRY_API void sentry_uuid_as_bytes(const sentry_uuid_t *uuid, char bytes[16]); - -/** - * Formats the uuid into a string buffer. - */ -SENTRY_API void sentry_uuid_as_string(const sentry_uuid_t *uuid, char str[37]); - -/** - * A Sentry Envelope. - * - * The Envelope is an abstract type which represents a payload being sent to - * sentry. It can contain one or more items, typically an Event. - * See https://develop.sentry.dev/sdk/envelopes/ - */ -struct sentry_envelope_s; -typedef struct sentry_envelope_s sentry_envelope_t; - -/** - * Frees an envelope. - */ -SENTRY_API void sentry_envelope_free(sentry_envelope_t *envelope); - -/** - * Given an Envelope, returns the embedded Event if there is one. - * - * This returns a borrowed value to the Event in the Envelope. - */ -SENTRY_API sentry_value_t sentry_envelope_get_event( - const sentry_envelope_t *envelope); - -/** - * Given an Envelope, returns the embedded Transaction if there is one. - * - * This returns a borrowed value to the Transaction in the Envelope. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_envelope_get_transaction( - const sentry_envelope_t *envelope); - -/** - * Serializes the envelope. - * - * The return value needs to be freed with sentry_string_free(). - */ -SENTRY_API char *sentry_envelope_serialize( - const sentry_envelope_t *envelope, size_t *size_out); - -/** - * Serializes the envelope into a file. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * - * Returns 0 on success. - */ -SENTRY_API int sentry_envelope_write_to_file( - const sentry_envelope_t *envelope, const char *path); -SENTRY_API int sentry_envelope_write_to_file_n( - const sentry_envelope_t *envelope, const char *path, size_t path_len); - -/** - * The Sentry Client Options. - * - * See https://docs.sentry.io/platforms/native/configuration/ - */ -struct sentry_options_s; -typedef struct sentry_options_s sentry_options_t; - -/** - * This represents an interface for user-defined transports. - * - * Transports are responsible for sending envelopes to sentry and are the last - * step in the event pipeline. - * - * Envelopes will be submitted to the transport in a _fire and forget_ fashion, - * and the transport must send those envelopes _in order_. - * - * A transport has the following hooks, all of which - * take the user provided `state` as last parameter. The transport state needs - * to be set with `sentry_transport_set_state` and typically holds handles and - * other information that can be reused across requests. - * - * * `send_func`: This function will take ownership of an envelope, and is - * responsible for freeing it via `sentry_envelope_free`. - * * `startup_func`: This hook will be called by sentry inside of `sentry_init` - * and instructs the transport to initialize itself. Failures will bubble up - * to `sentry_init`. - * * `flush_func`: Instructs the transport to flush its queue. - * This hook receives a millisecond-resolution `timeout` parameter and should - * return `0` if the transport queue is flushed within the timeout. - * * `shutdown_func`: Instructs the transport to flush its queue and shut down. - * This hook receives a millisecond-resolution `timeout` parameter and should - * return `0` if the transport is flushed and shut down successfully. - * In case of a non-zero return value, sentry will log an error, but continue - * with freeing the transport. - * * `free_func`: Frees the transports `state`. This hook might be called even - * though `shutdown_func` returned a failure code previously. - * - * The transport interface might be extended in the future with hooks to flush - * its internal queue without shutting down, and to dump its internal queue to - * disk in case of a hard crash. - */ -struct sentry_transport_s; -typedef struct sentry_transport_s sentry_transport_t; - -/** - * Creates a new transport with an initial `send_func`. - */ -SENTRY_API sentry_transport_t *sentry_transport_new( - void (*send_func)(sentry_envelope_t *envelope, void *state)); - -/** - * Sets the transport `state`. - * - * If the state is owned by the transport and needs to be freed, use - * `sentry_transport_set_free_func` to set an appropriate hook. - */ -SENTRY_API void sentry_transport_set_state( - sentry_transport_t *transport, void *state); - -/** - * Sets the transport hook to free the transport `state`. - */ -SENTRY_API void sentry_transport_set_free_func( - sentry_transport_t *transport, void (*free_func)(void *state)); - -/** - * Sets the transport startup hook. - * - * This hook is called from within `sentry_init` and will get a reference to the - * options which can be used to initialize a transports internal state. - * It should return `0` on success. A failure will bubble up to `sentry_init`. - */ -SENTRY_API void sentry_transport_set_startup_func(sentry_transport_t *transport, - int (*startup_func)(const sentry_options_t *options, void *state)); - -/** - * Sets the transport flush hook. - * - * This hook will receive a millisecond-resolution timeout. - * It should return `0` if all the pending envelopes are - * sent within the timeout, or `1` if the timeout is hit. - */ -SENTRY_API void sentry_transport_set_flush_func(sentry_transport_t *transport, - int (*flush_func)(uint64_t timeout, void *state)); - -/** - * Sets the transport shutdown hook. - * - * This hook will receive a millisecond-resolution timeout. - * It should return `0` on success in case all the pending envelopes have been - * sent within the timeout, or `1` if the timeout was hit. - */ -SENTRY_API void sentry_transport_set_shutdown_func( - sentry_transport_t *transport, - int (*shutdown_func)(uint64_t timeout, void *state)); - -/** - * Generic way to free a transport. - */ -SENTRY_API void sentry_transport_free(sentry_transport_t *transport); - -/** - * Create a new function transport. - * - * It is a convenience function which works with a borrowed `data`, and will - * automatically free the envelope, so the user provided function does not need - * to do that. - * - * This function is *deprecated* and will be removed in a future version. - * It is here for backwards compatibility. Users should migrate to the - * `sentry_transport_new` API. - */ -SENTRY_API sentry_transport_t *sentry_new_function_transport( - void (*func)(const sentry_envelope_t *envelope, void *data), void *data); - -/** - * This represents an interface for user-defined backends. - * - * Backends are responsible to handle crashes. They are maintained at runtime - * via various life-cycle hooks from the sentry-core. - * - * At this point none of those interfaces are exposed in the API including - * creation and destruction. The main use-case of the backend in the API at this - * point is to disable it via `sentry_options_set_backend` at runtime before it - * is initialized. - */ -struct sentry_backend_s; -typedef struct sentry_backend_s sentry_backend_t; - -/* -- Options APIs -- */ - -/** - * The state of user consent. - */ -typedef enum { - SENTRY_USER_CONSENT_UNKNOWN = -1, - SENTRY_USER_CONSENT_GIVEN = 1, - SENTRY_USER_CONSENT_REVOKED = 0, -} sentry_user_consent_t; - -/** - * The crash handler strategy. - */ -typedef enum { - SENTRY_HANDLER_STRATEGY_DEFAULT = 0, - SENTRY_HANDLER_STRATEGY_CHAIN_AT_START = 1, -} sentry_handler_strategy_t; - -/** - * Creates a new options struct. - * Can be freed with `sentry_options_free`. - */ -SENTRY_API sentry_options_t *sentry_options_new(void); - -/** - * Deallocates previously allocated sentry options. - */ -SENTRY_API void sentry_options_free(sentry_options_t *opts); - -/** - * Sets a transport. - */ -SENTRY_API void sentry_options_set_transport( - sentry_options_t *opts, sentry_transport_t *transport); - -#ifdef SENTRY_PLATFORM_NX -/** - * Function to start a network connection. - * This is called on a background thread so it must be thread-safe. - */ -SENTRY_API void sentry_options_set_network_connect_func( - sentry_options_t *opts, void (*network_connect_func)(void)); - -/** - * If false (the default), the SDK won't add PII or other sensitive data to the - * payload. For example, a pseudo-random identifier combining device and app ID. - */ -SENTRY_API void sentry_options_set_send_default_pii( - sentry_options_t *opts, int value); -#endif - -/** - * Type of the `before_send` callback. - * - * The callback takes ownership of the `event`, and should usually return that - * same event. In case the event should be discarded, the callback needs to - * call `sentry_value_decref` on the provided event, and return a - * `sentry_value_new_null()` instead. - * - * If you have set an `on_crash` callback (independent of whether it discards or - * retains the event), `before_send` will no longer be invoked for crash-events, - * which allows you to better distinguish between crashes and all other events - * in client-side pre-processing. - * - * This function may be invoked inside of a signal handler and must be safe for - * that purpose, see https://man7.org/linux/man-pages/man7/signal-safety.7.html. - * On Windows, it may be called from inside of a `UnhandledExceptionFilter`, see - * the documentation on SEH (structured exception handling) for more information - * https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling - * - * Up to version 0.4.18 the `before_send` callback wasn't invoked in case the - * event sampling discarded an event. In the current implementation the - * `before_send` callback is invoked even if the event sampling discards the - * event, following the cross-SDK session filter order: - * - * https://develop.sentry.dev/sdk/sessions/#filter-order - * - * On Windows the crashpad backend can capture fast-fail crashes which by-pass - * SEH. Since the `before_send` is called by a local exception-handler, it will - * not be invoked when such a crash happened, even though a minidump will be - * sent. - */ -typedef sentry_value_t (*sentry_event_function_t)( - sentry_value_t event, void *hint, void *user_data); - -/** - * Sets the `before_send` callback. - * - * See the `sentry_event_function_t` typedef above for more information. - */ -SENTRY_API void sentry_options_set_before_send( - sentry_options_t *opts, sentry_event_function_t func, void *user_data); - -/** - * Type of the `on_crash` callback. - * - * The `on_crash` callback replaces the `before_send` callback for crash events. - * The interface is analogous to `before_send` in that the callback takes - * ownership of the `event`, and should usually return that same event. In case - * the event should be discarded, the callback needs to call - * `sentry_value_decref` on the provided event, and return a - * `sentry_value_new_null()` instead. - * - * Only the `inproc` backend currently fills the passed-in event with crash - * meta-data. Since both `breakpad` and `crashpad` use minidumps to capture the - * crash state, the passed-in event is empty when using these backends. Changes - * to the event from inside the hooks will be passed along, but in the case of - * the minidump backends these changes might get overwritten during server-side - * ingestion and processing. This primarily affects the exception payloads which - * are auto-generated from the minidump content. See - * https://github.com/getsentry/sentry-native/issues/1147 for details. - * - * If you set this callback in the options, it prevents a concurrently enabled - * `before_send` callback from being invoked in the crash case. This allows for - * better differentiation between crashes and other events and gradual migration - * from existing `before_send` implementations: - * - * - if you have a `before_send` implementation and do not define an `on_crash` - * callback your application will receive both normal and crash events as - * before - * - if you have a `before_send` implementation but only want to handle normal - * events with it, then you can define an `on_crash` callback that returns - * the passed-in event and does nothing else - * - if you are not interested in normal events, but only want to act on - * crashes (within the limits mentioned below), then only define an - * `on_crash` callback with the option to filter (on all backends) or enrich - * (only inproc) the crash event - * - * This function may be invoked inside of a signal handler and must be safe for - * that purpose, see https://man7.org/linux/man-pages/man7/signal-safety.7.html. - * On Windows, it may be called from inside of a `UnhandledExceptionFilter`, see - * the documentation on SEH (structured exception handling) for more information - * https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling - * - * Platform-specific behavior: - * - * - does not work with crashpad on macOS. - * - for breakpad on Linux the `uctx` parameter is always NULL. - * - on Windows the crashpad backend can capture fast-fail crashes which - * by-pass SEH. Since `on_crash` is called by a local exception-handler, it will - * not be invoked when such a crash happened, even though a minidump will be - * sent. - */ -typedef sentry_value_t (*sentry_crash_function_t)( - const sentry_ucontext_t *uctx, sentry_value_t event, void *user_data); - -/** - * Sets the `on_crash` callback. - * - * See the `sentry_crash_function_t` typedef above for more information. - */ -SENTRY_API void sentry_options_set_on_crash( - sentry_options_t *opts, sentry_crash_function_t func, void *data); - -/** - * Sets the DSN. - */ -SENTRY_API void sentry_options_set_dsn(sentry_options_t *opts, const char *dsn); -SENTRY_API void sentry_options_set_dsn_n( - sentry_options_t *opts, const char *dsn, size_t dsn_len); - -/** - * Gets the DSN. - */ -SENTRY_API const char *sentry_options_get_dsn(const sentry_options_t *opts); - -/** - * Sets the sample rate, which should be a double between `0.0` and `1.0`. - * Sentry will randomly discard any event that is captured using - * `sentry_capture_event` when a sample rate < 1 is set. - * - * The sampling happens at the end of the event processing according to the - * following order: - * - * https://develop.sentry.dev/sdk/sessions/#filter-order - * - * Only items 3. to 6. are currently applicable to sentry-native. This means - * each processing step is executed even if the sampling discards the event - * before sending it to the backend. This is particularly relevant to users of - * the `before_send` callback. - * - * The above is in contrast to versions up to 0.4.18 where the sampling happened - * at the beginning of the processing/filter sequence. - */ -SENTRY_API void sentry_options_set_sample_rate( - sentry_options_t *opts, double sample_rate); - -/** - * Gets the sample rate. - */ -SENTRY_API double sentry_options_get_sample_rate(const sentry_options_t *opts); - -/** - * Sets the release. - */ -SENTRY_API void sentry_options_set_release( - sentry_options_t *opts, const char *release); -SENTRY_API void sentry_options_set_release_n( - sentry_options_t *opts, const char *release, size_t release_len); - -/** - * Gets the release. - */ -SENTRY_API const char *sentry_options_get_release(const sentry_options_t *opts); - -/** - * Sets the environment. - */ -SENTRY_API void sentry_options_set_environment( - sentry_options_t *opts, const char *environment); -SENTRY_API void sentry_options_set_environment_n( - sentry_options_t *opts, const char *environment, size_t environment_len); - -/** - * Gets the environment. - */ -SENTRY_API const char *sentry_options_get_environment( - const sentry_options_t *opts); - -/** - * Sets the dist. - */ -SENTRY_API void sentry_options_set_dist( - sentry_options_t *opts, const char *dist); -SENTRY_API void sentry_options_set_dist_n( - sentry_options_t *opts, const char *dist, size_t dist_len); - -/** - * Gets the dist. - */ -SENTRY_API const char *sentry_options_get_dist(const sentry_options_t *opts); - -/** - * Configures the proxy. - * - * The given proxy has to include the full scheme, - * eg. `http://some.proxy/` or `socks5://some.proxy/`. - * - * Not every transport behaves the same way when configuring a proxy. - * On Windows if a transport can't connect to the proxy it will fall back on a - * connection without proxy. This is also true for the crashpad_handler - * transport on macOS for a socks proxy, but not for a http proxy. - * All transports that use libcurl (Linux and the Native SDK transport on macOS) - * will honor the proxy settings and not fall back. - */ -SENTRY_API void sentry_options_set_proxy( - sentry_options_t *opts, const char *proxy); -SENTRY_API void sentry_options_set_proxy_n( - sentry_options_t *opts, const char *proxy, size_t proxy_len); - -/** - * Returns the configured proxy. - */ -SENTRY_API const char *sentry_options_get_proxy(const sentry_options_t *opts); - -/** - * Configures the proxy. - * - * This is a **deprecated** alias for `sentry_options_set_proxy(_n)`. - * - * The given proxy has to include the full scheme, - * eg. `http://some.proxy/. - */ -SENTRY_API void sentry_options_set_http_proxy( - sentry_options_t *opts, const char *proxy); -SENTRY_API void sentry_options_set_http_proxy_n( - sentry_options_t *opts, const char *proxy, size_t proxy_len); - -/** - * Returns the configured proxy. - */ -SENTRY_API const char *sentry_options_get_http_proxy( - const sentry_options_t *opts); - -/** - * Configures the path to a file containing ssl certificates for - * verification. - */ -SENTRY_API void sentry_options_set_ca_certs( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_set_ca_certs_n( - sentry_options_t *opts, const char *path, size_t path_len); - -/** - * Returns the configured path for ca certificates. - */ -SENTRY_API const char *sentry_options_get_ca_certs( - const sentry_options_t *opts); - -/** - * Configures the name of the http transport thread. - */ -SENTRY_API void sentry_options_set_transport_thread_name( - sentry_options_t *opts, const char *name); -SENTRY_API void sentry_options_set_transport_thread_name_n( - sentry_options_t *opts, const char *name, size_t name_len); - -/** - * Returns the configured http transport thread name. - */ -SENTRY_API const char *sentry_options_get_transport_thread_name( - const sentry_options_t *opts); - -/* - * Configures the name of the sentry SDK. Returns 0 on success. - */ -SENTRY_API int sentry_options_set_sdk_name( - sentry_options_t *opts, const char *sdk_name); - -/* - * Configures the name of the sentry SDK. Returns 0 on success. - */ -SENTRY_API int sentry_options_set_sdk_name_n( - sentry_options_t *opts, const char *sdk_name, size_t sdk_name_len); - -/** - * Returns the configured sentry SDK name. Unless overwritten this defaults to - * SENTRY_SDK_NAME. - */ -SENTRY_API const char *sentry_options_get_sdk_name( - const sentry_options_t *opts); - -/** - * Returns the user agent. Unless overwritten this defaults to - * "SENTRY_SDK_NAME / SENTRY_SDK_VERSION". - */ -SENTRY_API const char *sentry_options_get_user_agent( - const sentry_options_t *opts); - -/** - * Enables or disables debug printing mode. To change the log level from the - * default DEBUG level, use `sentry_options_set_logger_level`. - */ -SENTRY_API void sentry_options_set_debug(sentry_options_t *opts, int debug); - -/** - * Returns the current value of the debug flag. - */ -SENTRY_API int sentry_options_get_debug(const sentry_options_t *opts); - -/** - * Sets the level of the logger. Has no effect if `debug` is not set to true. - */ -SENTRY_API void sentry_options_set_logger_level( - sentry_options_t *opts, sentry_level_t level); - -/** - * Sets the number of breadcrumbs being tracked and attached to events. - * - * Defaults to 100. - */ -SENTRY_API void sentry_options_set_max_breadcrumbs( - sentry_options_t *opts, size_t max_breadcrumbs); - -/** - * Gets the number of breadcrumbs being tracked and attached to events. - */ -SENTRY_API size_t sentry_options_get_max_breadcrumbs( - const sentry_options_t *opts); - -/** - * Type of the callback for logger function. - */ -typedef void (*sentry_logger_function_t)( - sentry_level_t level, const char *message, va_list args, void *userdata); - -/** - * Sets the sentry-native logger function. - * - * Used for logging debug events when the `debug` option is set to true. - * - * Note: Multiple threads may invoke your `func`. If you plan to mutate any data - * inside the `userdata` argument after initialization, you must ensure proper - * synchronization inside the logger function. - * - */ -SENTRY_API void sentry_options_set_logger( - sentry_options_t *opts, sentry_logger_function_t func, void *userdata); - -/** - * Enables or disables automatic session tracking. - * - * Automatic session tracking is enabled by default and is equivalent to calling - * `sentry_start_session` after startup. - * There can only be one running session, and the current session will always be - * closed implicitly by `sentry_close`, when starting a new session with - * `sentry_start_session`, or manually by calling `sentry_end_session`. - */ -SENTRY_API void sentry_options_set_auto_session_tracking( - sentry_options_t *opts, int val); - -/** - * Returns true if automatic session tracking is enabled. - */ -SENTRY_API int sentry_options_get_auto_session_tracking( - const sentry_options_t *opts); - -/** - * Enables or disables user consent requirements for uploads. - * - * This disables uploads until the user has given the consent to the SDK. - * Consent itself is given with `sentry_user_consent_give` and - * `sentry_user_consent_revoke`. - */ -SENTRY_API void sentry_options_set_require_user_consent( - sentry_options_t *opts, int val); - -/** - * Returns true if user consent is required. - */ -SENTRY_API int sentry_options_get_require_user_consent( - const sentry_options_t *opts); - -/** - * Enables or disables on-device symbolication of stack traces. - * - * This feature can have a performance impact, and is enabled by default on - * Android. It is usually only needed when it is not possible to provide debug - * information files for system libraries which are needed for serverside - * symbolication. - */ -SENTRY_API void sentry_options_set_symbolize_stacktraces( - sentry_options_t *opts, int val); - -/** - * Returns true if on-device symbolication of stack traces is enabled. - */ -SENTRY_API int sentry_options_get_symbolize_stacktraces( - const sentry_options_t *opts); - -/** - * Adds a new attachment to be sent along. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use `sentry_options_add_attachmentw` - * instead. - * - * See the NOTE on attachments above for restrictions of this API. - */ -SENTRY_API void sentry_options_add_attachment( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_add_attachment_n( - sentry_options_t *opts, const char *path, size_t path_len); - -/** - * Adds a new view hierarchy attachment to be sent along. - * - * The primary use-case is for downstream SDKs (like sentry-godot). The - * view-hierarchy.json file should follow the representation defined in RFC#33 - * https://github.com/getsentry/rfcs/blob/main/text/0033-view-hierarchy.md - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use - * `sentry_options_add_view_hierarchyw` instead. - */ -SENTRY_API void sentry_options_add_view_hierarchy( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_add_view_hierarchy_n( - sentry_options_t *opts, const char *path, size_t path_len); - -/** - * Enables or disables attaching screenshots to fatal error events. Disabled by - * default. - * - * This feature is currently supported by all backends on Windows. Only the - * `crashpad` backend can capture screenshots of fast-fail crashes that bypass - * SEH (structured exception handling). - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_attach_screenshot( - sentry_options_t *opts, int val); - -/** - * Sets the path to the crashpad handler if the crashpad backend is used. - * - * The path defaults to the `crashpad_handler`/`crashpad_handler.exe` - * executable, depending on platform, which is expected to be present in the - * same directory as the app executable. - * - * It is recommended that library users set an explicit handler path, depending - * on the directory/executable structure of their app. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use `sentry_options_set_handler_pathw` - * instead. - */ -SENTRY_API void sentry_options_set_handler_path( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_set_handler_path_n( - sentry_options_t *opts, const char *path, size_t path_len); - -/** - * Sets the path to the Sentry Database Directory. - * - * Sentry will use this path to persist user consent, sessions, and other - * artifacts in case of a crash. This will also be used by the crashpad backend - * if it is configured. - * - * The directory is used for "cached" data, which needs to persist across - * application restarts to ensure proper flagging of release-health sessions, - * but might otherwise be safely purged regularly. - * - * It is roughly equivalent to the type of `AppData/Local` on Windows and - * `XDG_CACHE_HOME` on Linux, and equivalent runtime directories on other - * platforms. - * - * It is recommended that users set an explicit absolute path, depending - * on their apps runtime directory. The path will be created if it does not - * exist, and will be resolved to an absolute path inside of `sentry_init`. The - * directory should not be shared with other application data/configuration, as - * sentry-native will enumerate and possibly delete files in that directory. An - * example might be `$XDG_CACHE_HOME/your-app/sentry` - * - * If no explicit path it set, sentry-native will default to `.sentry-native` in - * the current working directory, with no specific platform-specific handling. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use - * `sentry_options_set_database_pathw` instead. - */ -SENTRY_API void sentry_options_set_database_path( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_set_database_path_n( - sentry_options_t *opts, const char *path, size_t path_len); - -#ifdef SENTRY_PLATFORM_WINDOWS -/** - * Wide char version of `sentry_options_add_attachment`. - */ -SENTRY_API void sentry_options_add_attachmentw( - sentry_options_t *opts, const wchar_t *path); -SENTRY_API void sentry_options_add_attachmentw_n( - sentry_options_t *opts, const wchar_t *path, size_t path_len); - -/** - * Wide char version of `sentry_options_add_view_hierarchy`. - */ -SENTRY_API void sentry_options_add_view_hierarchyw( - sentry_options_t *opts, const wchar_t *path); -SENTRY_API void sentry_options_add_view_hierarchyw_n( - sentry_options_t *opts, const wchar_t *path, size_t path_len); - -/** - * Wide char version of `sentry_options_set_handler_path`. - */ -SENTRY_API void sentry_options_set_handler_pathw( - sentry_options_t *opts, const wchar_t *path); -SENTRY_API void sentry_options_set_handler_pathw_n( - sentry_options_t *opts, const wchar_t *path, size_t path_len); - -/** - * Wide char version of `sentry_options_set_database_path`. - */ -SENTRY_API void sentry_options_set_database_pathw( - sentry_options_t *opts, const wchar_t *path); -SENTRY_API void sentry_options_set_database_pathw_n( - sentry_options_t *opts, const wchar_t *path, size_t path_len); - -/** - * Allows users to define a thread stack guarantee manually on each thread. This - * is necessary for crash handlers to run after a thread crashed due to a - * stack-overflow on Windows. - * - * By default the Native SDK automatically sets this value for you, but in some - * cases it might be preferable to set these values yourself for each thread you - * manage. Ensure to disable the `SENTRY_THREAD_STACK_GUARANTEE_AUTO_INIT` CMake - * option when building the Native SDK to have full control over each threads - * stack guarantee. - * - * The input parameter specifies a size in bytes and should be a multiple of the - * page size. Returns `1` if the thread stack guarantee was set successfully and - * `0` otherwise. - * - * Note: when we auto-assign the stack guarantee we check against the thread's - * stack reserve (see `SENTRY_THREAD_STACK_GUARANTEE_FACTOR` in the - * `README.md`). This check is not applied when you call this function. - * Note: this function depends on the SDK being initialized when doing static - * builds or in any configuration on Xbox. - */ -SENTRY_EXPERIMENTAL_API int sentry_set_thread_stack_guarantee( - uint32_t stack_guarantee_in_bytes); -#endif - -/** - * Enables forwarding to the system crash reporter. Disabled by default. - * - * This setting only has an effect when using Crashpad on macOS. If enabled, - * Crashpad forwards crashes to the macOS system crash reporter. Depending - * on the crash, this may impact the crash time. Even if enabled, Crashpad - * may choose not to forward certain crashes. - */ -SENTRY_API void sentry_options_set_system_crash_reporter_enabled( - sentry_options_t *opts, int enabled); - -/** - * Enables a wait for the crash report upload to be finished before shutting - * down. This is disabled by default. - * - * This setting only has an effect when using the `crashpad` backend on Linux - * and Windows. - */ -SENTRY_API void sentry_options_set_crashpad_wait_for_upload( - sentry_options_t *opts, int wait_for_upload); - -/** - * Sets the maximum time (in milliseconds) to wait for the asynchronous - * tasks to end on shutdown, before attempting a forced termination. - */ -SENTRY_API void sentry_options_set_shutdown_timeout( - sentry_options_t *opts, uint64_t shutdown_timeout); - -/** - * Gets the maximum time (in milliseconds) to wait for the asynchronous tasks to - * end on shutdown, before attempting a forced termination. - */ -SENTRY_API uint64_t sentry_options_get_shutdown_timeout(sentry_options_t *opts); - -/** - * Sets a user-defined backend. - * - * Since creation and destruction of backends is not exposed in the API, this - * can only be used to set the backend to `NULL`, which disables the backend in - * the initialization. - */ -SENTRY_API void sentry_options_set_backend( - sentry_options_t *opts, sentry_backend_t *backend); - -/* -- Global/Scope APIs -- */ - -/** - * Initializes the Sentry SDK with the specified options. - * - * This takes ownership of the options. After the options have been set - * they cannot be modified any more. - * Depending on the configured transport and backend, this function might not be - * fully thread-safe. - * Returns 0 on success. - */ -SENTRY_API int sentry_init(sentry_options_t *options); - -/** - * Instructs the transport to flush its send queue. - * - * The `timeout` parameter is in milliseconds. - * - * Returns 0 on success, or a non-zero return value in case the timeout is hit. - * - * Note that this function will block the thread it was called from until the - * sentry background worker has finished its work or it timed out, whichever - * comes first. - */ -SENTRY_API int sentry_flush(uint64_t timeout); - -/** - * Shuts down the sentry client and forces transports to flush out. - * - * Returns 0 on success. - * - * Note that this does not uninstall any crash handler installed by our - * backends, which will still process crashes after `sentry_close()`, except - * when using `crashpad` on Linux or the `inproc` backend. - * - * Further note that this function will block the thread it was called from - * until the sentry background worker has finished its work or it timed out, - * whichever comes first. - */ -SENTRY_API int sentry_close(void); - -/** - * Shuts down the sentry client and forces transports to flush out. - * - * This is a **deprecated** alias for `sentry_close`. - * - * Returns 0 on success. - */ -SENTRY_API int sentry_shutdown(void); - -/** - * This will lazily load and cache a list of all the loaded libraries. - * - * Returns a new reference to an immutable, frozen list. - * The reference must be released with `sentry_value_decref`. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_get_modules_list(void); - -/** - * Clears the internal module cache. - * - * For performance reasons, sentry will cache the list of loaded libraries when - * capturing events. This cache can get out-of-date when loading or unloading - * libraries at runtime. It is therefore recommended to call - * `sentry_clear_modulecache` when doing so, to make sure that the next call to - * `sentry_capture_event` will have an up-to-date module list. - */ -SENTRY_EXPERIMENTAL_API void sentry_clear_modulecache(void); - -/** - * Re-initializes the Sentry backend. - * - * This is needed if a third-party library overrides the previously installed - * signal handler. Calling this function can be potentially dangerous and should - * only be done when necessary. - * - * Returns 0 on success. - */ -SENTRY_EXPERIMENTAL_API int sentry_reinstall_backend(void); - -/** - * Gives user consent. - */ -SENTRY_API void sentry_user_consent_give(void); - -/** - * Revokes user consent. - */ -SENTRY_API void sentry_user_consent_revoke(void); - -/** - * Resets the user consent (back to unknown). - */ -SENTRY_API void sentry_user_consent_reset(void); - -/** - * Checks the current state of user consent. - */ -SENTRY_API sentry_user_consent_t sentry_user_consent_get(void); - -/** - * A sentry Scope. - * - * See https://develop.sentry.dev/sdk/telemetry/scopes/ - */ -struct sentry_scope_s; -typedef struct sentry_scope_s sentry_scope_t; - -/** - * Creates a local scope. - */ -SENTRY_API sentry_scope_t *sentry_local_scope_new(void); - -/** - * Sends a sentry event. - * - * If returns a nil UUID if the event being passed in is a transaction, and the - * transaction will not be sent nor consumed. `sentry_transaction_finish` should - * be used to send transactions. - */ -SENTRY_API sentry_uuid_t sentry_capture_event(sentry_value_t event); - -/** - * Sends a sentry event with a local scope. - * - * Takes ownership of `scope`. - */ -SENTRY_API sentry_uuid_t sentry_capture_event_with_scope( - sentry_value_t event, sentry_scope_t *scope); - -/** - * Allows capturing independently created minidumps. - * - * This generates a fatal error event, includes the scope and attachments. - * If a before-send hook doesn't drop the event, the minidump is attached - * and the event is sent. - * - * Returns a nil `UUID` if capturing the minidump failed and the event-id - * otherwise. Uploads can fail because capturing is asynchronous, so a non-nil - * `UUID` is not a delivery guarantee. However, if the minidump is successfully - * delivered, the ID is guaranteed to be the same as the event in the Sentry UI. - * - * Note: You don't need this function if you rely on Sentry to create the - * minidump. This is useful when you have a minidump captured through a - * different mechanism, and you want Sentry to ingest it. - */ -SENTRY_API sentry_uuid_t sentry_capture_minidump(const char *path); -SENTRY_API sentry_uuid_t sentry_capture_minidump_n( - const char *path, size_t path_len); - -/** - * Captures a system-native exception that you retrieve when you manually handle - * `POSIX` signals or `SEH` exceptions and want to keep using that handling - * instead of the top-level handlers in our backends. The exception is still - * processed as a sentry event inside the SDK, including applying scope metadata - * and invoking hooks. - * - * The passed in `sentry_ucontext_t` must be filled with the OS-specific - * exception data (as specified in the struct definition) that you retrieve - * from your handler. - * - * This is safe to be called from a crashing thread and may not return. - * - * Note: The `crashpad` client currently supports this only on Windows. `inproc` - * and `breakpad` supports it on all platforms (on macOS, the `uctx` - * argument is ignored when using the `breakpad` backend). - */ -SENTRY_EXPERIMENTAL_API void sentry_handle_exception( - const sentry_ucontext_t *uctx); - -/** - * Adds the breadcrumb to be sent in case of an event. - */ -SENTRY_API void sentry_add_breadcrumb(sentry_value_t breadcrumb); -SENTRY_API void sentry_scope_add_breadcrumb( - sentry_scope_t *scope, sentry_value_t breadcrumb); - -/** - * Sets the specified user. - */ -SENTRY_API void sentry_set_user(sentry_value_t user); -SENTRY_API void sentry_scope_set_user( - sentry_scope_t *scope, sentry_value_t user); - -/** - * Removes a user. - */ -SENTRY_API void sentry_remove_user(void); - -/** - * Sets a tag. - */ -SENTRY_API void sentry_set_tag(const char *key, const char *value); -SENTRY_API void sentry_set_tag_n( - const char *key, size_t key_len, const char *value, size_t value_len); -SENTRY_API void sentry_scope_set_tag( - sentry_scope_t *scope, const char *key, const char *value); -SENTRY_API void sentry_scope_set_tag_n(sentry_scope_t *scope, const char *key, - size_t key_len, const char *value, size_t value_len); - -/** - * Removes the tag with the specified key. - */ -SENTRY_API void sentry_remove_tag(const char *key); -SENTRY_API void sentry_remove_tag_n(const char *key, size_t key_len); - -/** - * Sets extra information. - */ -SENTRY_API void sentry_set_extra(const char *key, sentry_value_t value); -SENTRY_API void sentry_set_extra_n( - const char *key, size_t key_len, sentry_value_t value); -SENTRY_API void sentry_scope_set_extra( - sentry_scope_t *scope, const char *key, sentry_value_t value); -SENTRY_API void sentry_scope_set_extra_n(sentry_scope_t *scope, const char *key, - size_t key_len, sentry_value_t value); - -/** - * Removes the extra with the specified key. - */ -SENTRY_API void sentry_remove_extra(const char *key); -SENTRY_API void sentry_remove_extra_n(const char *key, size_t key_len); - -/** - * Sets a context object. - */ -SENTRY_API void sentry_set_context(const char *key, sentry_value_t value); -SENTRY_API void sentry_set_context_n( - const char *key, size_t key_len, sentry_value_t value); -SENTRY_API void sentry_scope_set_context( - sentry_scope_t *scope, const char *key, sentry_value_t value); -SENTRY_API void sentry_scope_set_context_n(sentry_scope_t *scope, - const char *key, size_t key_len, sentry_value_t value); - -/** - * Removes the context object with the specified key. - */ -SENTRY_API void sentry_remove_context(const char *key); -SENTRY_API void sentry_remove_context_n(const char *key, size_t key_len); - -/** - * Sets the event fingerprint. - * - * This accepts a variable number of arguments, and needs to be terminated by a - * trailing `NULL`. - */ -SENTRY_API void sentry_set_fingerprint(const char *fingerprint, ...); -SENTRY_API void sentry_set_fingerprint_n( - const char *fingerprint, size_t fingerprint_len, ...); -SENTRY_API void sentry_scope_set_fingerprint( - sentry_scope_t *scope, const char *fingerprint, ...); -SENTRY_API void sentry_scope_set_fingerprint_n(sentry_scope_t *scope, - const char *fingerprint, size_t fingerprint_len, ...); - -/** - * Sets the event fingerprints. - * - * This accepts a list of fingerprints created with `sentry_value_new_list`. - */ -SENTRY_API void sentry_scope_set_fingerprints( - sentry_scope_t *scope, sentry_value_t fingerprints); - -/** - * Removes the fingerprint. - */ -SENTRY_API void sentry_remove_fingerprint(void); - -/** - * Set the trace. The primary use for this is to allow other SDKs to propagate - * their trace context to connect events on all layers - */ -SENTRY_API void sentry_set_trace( - const char *trace_id, const char *parent_span_id); -SENTRY_API void sentry_set_trace_n(const char *trace_id, size_t trace_id_len, - const char *parent_span_id, size_t parent_span_id_len); - -/** - * Sets the transaction. - */ -SENTRY_API void sentry_set_transaction(const char *transaction); -SENTRY_API void sentry_set_transaction_n( - const char *transaction, size_t transaction_len); - -/** - * Sets the event level. - */ -SENTRY_API void sentry_set_level(sentry_level_t level); -SENTRY_API void sentry_scope_set_level( - sentry_scope_t *scope, sentry_level_t level); - -/** - * Sets the maximum number of spans that can be attached to a - * transaction. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_max_spans( - sentry_options_t *opts, size_t max_spans); - -/** - * Gets the maximum number of spans that can be attached to a - * transaction. - */ -SENTRY_EXPERIMENTAL_API size_t sentry_options_get_max_spans( - sentry_options_t *opts); - -/** - * Sets the sample rate for transactions. Should be a double between - * `0.0` and `1.0`. Transactions will be randomly discarded during - * `sentry_transaction_finish` when the sample rate is < 1.0. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_traces_sample_rate( - sentry_options_t *opts, double sample_rate); - -/** - * Returns the sample rate for transactions. - */ -SENTRY_EXPERIMENTAL_API double sentry_options_get_traces_sample_rate( - sentry_options_t *opts); - -/** - * A sentry Transaction Context. - * - * See Transaction Interface under - * https://develop.sentry.dev/sdk/performance/#new-span-and-transaction-classes - */ -struct sentry_transaction_context_s; -typedef struct sentry_transaction_context_s sentry_transaction_context_t; -typedef double (*sentry_traces_sampler_function)( - const sentry_transaction_context_t *transaction_ctx, - sentry_value_t custom_sampling_ctx, const int *parent_sampled); - -/** - * Sets the traces sampler callback. Should be a function that returns a double - * and takes in a sentry_transaction_context_t pointer, a sentry_value_t for - * a custom sampling context and an int pointer for the parent sampled flag. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_traces_sampler( - sentry_options_t *opts, sentry_traces_sampler_function callback); - -#ifdef SENTRY_PLATFORM_LINUX - -/** - * Returns the currently set strategy for the handler. - * - * This option does only work for the `inproc` backend on `Linux` and `Android`. - * - * The main use-case is when the Native SDK is used in the context of the - * CLR/Mono runtimes which convert some POSIX signals into managed-code - * exceptions and discontinue the signal chain. - * - * If this happens and we invoke the previous handler at the end (i.e., after - * our handler processed the signal, which is the default strategy) we will end - * up sending a native crash in addition to the managed code exception (which - * will either generate another crash-event if uncaught or could be handled in - * the managed code and neither terminate the application nor create a crash - * event). To correctly process the signals of CLR/Mono applications, we must - * invoke the runtime handler at the start of our handler. - */ -SENTRY_EXPERIMENTAL_API sentry_handler_strategy_t -sentry_options_get_handler_strategy(const sentry_options_t *opts); - -/** - * Sets the handler strategy. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_handler_strategy( - sentry_options_t *opts, sentry_handler_strategy_t handler_strategy); - -#endif // SENTRY_PLATFORM_LINUX - -/** - * A sentry Attachment. - * - * See https://develop.sentry.dev/sdk/data-model/envelope-items/#attachment - */ -struct sentry_attachment_s; -typedef struct sentry_attachment_s sentry_attachment_t; - -/** - * Attaches a file to be sent along with events. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use `sentry_attach_filew` or - * `sentry_scope_attach_filew` instead. - * - * The same file cannot be attached multiple times i.e. `path` must be unique. - * Calling this function multiple times with the same `path` is safe, but - * duplicate attachments with equal paths will not be added. - * - * The returned `sentry_attachment_t` is owned by the SDK and will remain valid - * until the attachment is removed with `sentry_remove_attachment` or - * `sentry_close` is called. - * - * See the NOTE on attachments above for restrictions of this API. - */ -SENTRY_API sentry_attachment_t *sentry_attach_file(const char *path); -SENTRY_API sentry_attachment_t *sentry_attach_file_n( - const char *path, size_t path_len); -SENTRY_API sentry_attachment_t *sentry_scope_attach_file( - sentry_scope_t *scope, const char *path); -SENTRY_API sentry_attachment_t *sentry_scope_attach_file_n( - sentry_scope_t *scope, const char *path, size_t path_len); - -/** - * Attaches bytes to be sent along with events. - * - * `filename` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use `sentry_attach_bytesw` or - * `sentry_scope_attach_bytesw` instead. - * - * `filename` is used to identify the attachment in the Sentry Web UI. It is - * recommended to use unique filenames to make attachments easier to - * differentiate. However, neither `filename` nor `buf` is used to reject - * duplicate attachments. - * - * NOTE: When using the `crashpad` backend, it writes byte attachments to disk - * into a flat directory structure. If multiple buffers are attached with the - * same `filename`, it will internally ensure unique filenames for attachments - * by appending a unique suffix to the filename. Therefore, attachments may show - * up with altered names in the Sentry Web UI. - * - * The returned `sentry_attachment_t` is owned by the SDK and will remain valid - * until the attachment is removed with `sentry_remove_attachment` or - * `sentry_close` is called. - * - * See the NOTE on attachments above for restrictions of this API. - */ -SENTRY_API sentry_attachment_t *sentry_attach_bytes( - const char *buf, size_t buf_len, const char *filename); -SENTRY_API sentry_attachment_t *sentry_attach_bytes_n( - const char *buf, size_t buf_len, const char *filename, size_t filename_len); -SENTRY_API sentry_attachment_t *sentry_scope_attach_bytes(sentry_scope_t *scope, - const char *buf, size_t buf_len, const char *filename); -SENTRY_API sentry_attachment_t *sentry_scope_attach_bytes_n( - sentry_scope_t *scope, const char *buf, size_t buf_len, - const char *filename, size_t filename_len); - -/** - * Removes and frees a previously added attachment. - * - * See the NOTE on attachments above for restrictions of this API. - */ -SENTRY_API void sentry_remove_attachment(sentry_attachment_t *attachment); - -#ifdef SENTRY_PLATFORM_WINDOWS -/** - * Wide char versions of `sentry_attach_file` and `sentry_scope_attach_file`. - */ -SENTRY_API sentry_attachment_t *sentry_attach_filew(const wchar_t *path); -SENTRY_API sentry_attachment_t *sentry_attach_filew_n( - const wchar_t *path, size_t path_len); -SENTRY_API sentry_attachment_t *sentry_scope_attach_filew( - sentry_scope_t *scope, const wchar_t *path); -SENTRY_API sentry_attachment_t *sentry_scope_attach_filew_n( - sentry_scope_t *scope, const wchar_t *path, size_t path_len); - -/** - * Wide char versions of `sentry_attach_bytes` and `sentry_scope_attach_bytes`. - */ -SENTRY_API sentry_attachment_t *sentry_attach_bytesw( - const char *buf, size_t buf_len, const wchar_t *filename); -SENTRY_API sentry_attachment_t *sentry_attach_bytesw_n(const char *buf, - size_t buf_len, const wchar_t *filename, size_t filename_len); -SENTRY_API sentry_attachment_t *sentry_scope_attach_bytesw( - sentry_scope_t *scope, const char *buf, size_t buf_len, - const wchar_t *filename); -SENTRY_API sentry_attachment_t *sentry_scope_attach_bytesw_n( - sentry_scope_t *scope, const char *buf, size_t buf_len, - const wchar_t *filename, size_t filename_len); -#endif - -/** - * Sets the content type of an attachment. - */ -SENTRY_API void sentry_attachment_set_content_type( - sentry_attachment_t *attachment, const char *content_type); -SENTRY_API void sentry_attachment_set_content_type_n( - sentry_attachment_t *attachment, const char *content_type, - size_t content_type_len); - -/** - * Sets the filename of an attachment. - */ -SENTRY_API void sentry_attachment_set_filename( - sentry_attachment_t *attachment, const char *filename); -SENTRY_API void sentry_attachment_set_filename_n( - sentry_attachment_t *attachment, const char *filename, size_t filename_len); - -#ifdef SENTRY_PLATFORM_WINDOWS -/** - * Wide char version of `sentry_attachment_set_filename`. - */ -SENTRY_API void sentry_attachment_set_filenamew( - sentry_attachment_t *attachment, const wchar_t *filename); -SENTRY_API void sentry_attachment_set_filenamew_n( - sentry_attachment_t *attachment, const wchar_t *filename, - size_t filename_len); -#endif - -/* -- Session APIs -- */ - -typedef enum { - SENTRY_SESSION_STATUS_OK, - SENTRY_SESSION_STATUS_CRASHED, - SENTRY_SESSION_STATUS_ABNORMAL, - SENTRY_SESSION_STATUS_EXITED, -} sentry_session_status_t; - -/** - * Starts a new session. - */ -SENTRY_API void sentry_start_session(void); - -/** - * Ends a session. - */ -SENTRY_API void sentry_end_session(void); - -/** - * Ends a session with an explicit `status` code. - */ -SENTRY_EXPERIMENTAL_API void sentry_end_session_with_status( - sentry_session_status_t status); - -/* -- Performance Monitoring/Tracing APIs -- */ - -/** - * A sentry Transaction. - * - * See https://develop.sentry.dev/sdk/event-payloads/transaction/ - */ -struct sentry_transaction_s; -typedef struct sentry_transaction_s sentry_transaction_t; - -/** - * Type of the `before_transaction` callback. - * - * The callback takes ownership of the `transaction`, and should usually return - * that same transaction. In case the transaction should be discarded, the - * callback needs to call `sentry_value_decref` on the provided transaction, and - * return a `sentry_value_new_null()` instead. - */ -typedef sentry_value_t (*sentry_transaction_function_t)( - sentry_value_t transaction, void *user_data); - -/** - * Sets the `before_transaction` callback. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_before_transaction( - sentry_options_t *opts, sentry_transaction_function_t func, void *data); - -/** - * A sentry Span. - * - * See https://develop.sentry.dev/sdk/event-payloads/span/ - */ -struct sentry_span_s; -typedef struct sentry_span_s sentry_span_t; - -/** - * Constructs a new Transaction Context. The returned value needs to be passed - * into `sentry_transaction_start` in order to be recorded and sent to sentry. - * - * See - * https://docs.sentry.io/platforms/native/enriching-events/transaction-name/ - * for an explanation of a Transaction's `name`, and - * https://develop.sentry.dev/sdk/performance/span-operations/ for conventions - * around an `operation`'s value. - * - * Also see https://develop.sentry.dev/sdk/event-payloads/transaction/#anatomy - * for an explanation of `operation`, in addition to other properties and - * actions that can be performed on a Transaction. - * - * The returned value is not thread-safe. Users are expected to ensure that - * appropriate locking mechanisms are implemented over the Transaction Context - * if it needs to be mutated across threads. Methods operating on the - * Transaction Context will mention what kind of expectations they carry if they - * need to mutate or access the object in a thread-safe way. - */ -SENTRY_EXPERIMENTAL_API sentry_transaction_context_t * -sentry_transaction_context_new(const char *name, const char *operation); -SENTRY_EXPERIMENTAL_API sentry_transaction_context_t * -sentry_transaction_context_new_n(const char *name, size_t name_len, - const char *operation, size_t operation_len); - -/** - * Sets the `name` on a Transaction Context, which will be used in the - * Transaction constructed off of the context. - * - * The Transaction Context should not be mutated by other functions while - * setting a name on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_name( - sentry_transaction_context_t *tx_ctx, const char *name); -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_name_n( - sentry_transaction_context_t *tx_ctx, const char *name, size_t name_len); -/** - * Gets the `name` of a Transaction Context. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_transaction_context_get_name( - const sentry_transaction_context_t *tx_ctx); - -/** - * Sets the `operation` on a Transaction Context, which will be used in the - * Transaction constructed off of the context - * - * See https://develop.sentry.dev/sdk/performance/span-operations/ for - * conventions on `operation`s. - * - * The Transaction Context should not be mutated by other functions while - * setting an operation on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_operation( - sentry_transaction_context_t *tx_ctx, const char *operation); -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_operation_n( - sentry_transaction_context_t *tx_ctx, const char *operation, - size_t operation_len); -/** - * Gets the `operation` of a Transaction Context. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_transaction_context_get_operation( - const sentry_transaction_context_t *tx_ctx); - -/** - * Sets the `sampled` field on a Transaction Context, which will be used in the - * Transaction constructed off of the context. - * - * When passed any value above 0, the Transaction will bypass all sampling - * options and always be sent to sentry. If passed 0, this Transaction and its - * child spans will never be sent to sentry. - * - * The Transaction Context should not be mutated by other functions while - * setting `sampled` on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_sampled( - sentry_transaction_context_t *tx_ctx, int sampled); - -/** - * Removes the `sampled` field on a Transaction Context, which will be used in - * the Transaction constructed off of the context. - * - * The Transaction will use the sampling rate as defined in `sentry_options`. - * - * The Transaction Context should not be mutated by other functions while - * removing `sampled`. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_remove_sampled( - sentry_transaction_context_t *tx_ctx); - -/** - * Update the Transaction Context with the given HTTP header key/value pair. - * - * This is used to propagate distributed tracing metadata from upstream - * services. Therefore, the headers of incoming requests should be fed into this - * function so that sentry is able to continue a trace that was started by an - * upstream service. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_update_from_header( - sentry_transaction_context_t *tx_ctx, const char *key, const char *value); -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_update_from_header_n( - sentry_transaction_context_t *tx_ctx, const char *key, size_t key_len, - const char *value, size_t value_len); - -/** - * Starts a new Transaction based on the provided context, restored from an - * external integration (i.e. a span from a different SDK) or manually - * constructed by a user. - * - * The second parameter is a custom Sampling Context to be used with a Traces - * Sampler to allow you to make a more informed sampling decision. - * - * Returns a Transaction, which is expected to be manually managed by the - * caller. Manual management involves ensuring that `sentry_transaction_finish` - * is invoked for the Transaction, and that the caller manually starts and - * finishes any child Spans as needed on the Transaction. - * - * Not invoking `sentry_transaction_finish` with the returned Transaction means - * it will be discarded, and will not be sent to sentry. - * - * To ensure that any Events or Message Events are associated with this - * Transaction while it is active, invoke and pass in the Transaction returned - * by this function to `sentry_set_transaction_object`. Further documentation on - * this can be found in `sentry_set_transaction_object`'s docstring. - * - * Takes ownership of `transaction_context`. A Transaction Context cannot be - * modified or re-used after it is used to start a Transaction. - * - * Takes ownership of `custom_sampling_ctx`. A Sampling Context cannot be - * modified or re-used after it is used to start a Transaction. - * - * The returned value is not thread-safe. Users are expected to ensure that - * appropriate locking mechanisms are implemented over the Transaction if it - * needs to be mutated across threads. Methods operating on the Transaction will - * mention what kind of expectations they carry if they need to mutate or access - * the object in a thread-safe way. - */ -SENTRY_EXPERIMENTAL_API sentry_transaction_t *sentry_transaction_start( - sentry_transaction_context_t *tx_ctx, sentry_value_t custom_sampling_ctx); -/** - * Also starts a transaction like the regular `sentry_transaction_start` - * function, but has an additional timestamp parameter to let the user provide - * explicit timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API sentry_transaction_t *sentry_transaction_start_ts( - sentry_transaction_context_t *tx_ctx, sentry_value_t custom_sampling_ctx, - uint64_t timestamp); - -/** - * Finishes and sends a Transaction to sentry. The event ID of the Transaction - * will be returned if this was successful; A nil UUID will be returned - * otherwise. - * - * Always takes ownership of `transaction`, regardless of whether the operation - * was successful or not. A Transaction cannot be modified or re-used after it - * is finished. - */ -SENTRY_EXPERIMENTAL_API sentry_uuid_t sentry_transaction_finish( - sentry_transaction_t *tx); -/** - * Also finishes a transaction like the regular `sentry_transaction_finish` - * function, but has an additional timestamp parameter to let the user provide - * explicit timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API sentry_uuid_t sentry_transaction_finish_ts( - sentry_transaction_t *tx, uint64_t timestamp); - -/** - * Sets the Transaction so any Events sent while the Transaction - * is active will be associated with the Transaction. - * - * If the Transaction being passed in is unsampled, it will still be associated - * with any new Events. This will lead to some Events pointing to orphan or - * missing traces in sentry, see - * https://docs.sentry.io/product/sentry-basics/tracing/trace-view/#orphan-traces-and-broken-subtraces - * - * This increases the number of references pointing to the Transaction. Invoke - * `sentry_transaction_finish` to remove the Transaction set by this function as - * well as its reference by passing in the same Transaction as the one passed - * into this function. - */ -SENTRY_EXPERIMENTAL_API void sentry_set_transaction_object( - sentry_transaction_t *tx); - -/** - * Sets the Span so any Events sent while the Span - * is active will be associated with the Span. - * - * This increases the number of references pointing to the Span. Invoke - * `sentry_span_finish` to remove the Span set by this function as well - * as its reference by passing in the same Span as the one passed into - * this function. - */ -SENTRY_EXPERIMENTAL_API void sentry_set_span(sentry_span_t *span); - -/** - * Starts a new Span. - * - * The return value of `sentry_transaction_start` should be passed in as - * `parent`. This value can't be null, since we don't allow for orphan spans. - * - * Both `operation` and `description` can be null, but it is recommended to - * supply the former. See - * https://develop.sentry.dev/sdk/performance/span-operations/ for conventions - * around operations. - * - * See https://develop.sentry.dev/sdk/event-payloads/span/ for a description of - * the created Span's properties and expectations for `operation` and - * `description`. - * - * Returns a value that should be passed into `sentry_span_finish`. Not - * finishing the Span means it will be discarded, and will not be sent to - * sentry. `sentry_value_null` will be returned if the child Span could not be - * created. - * - * To ensure that any Events or Message Events are associated with this - * Span while it is active, invoke and pass in the Span returned - * by this function to `sentry_set_span`. Further documentation on this can be - * found in `sentry_set_span`'s docstring. - * - * This increases the number of references pointing to the Transaction. - * - * The returned value is not thread-safe. Users are expected to ensure that - * appropriate locking mechanisms are implemented over the Span if it needs - * to be mutated across threads. Methods operating on the Span will mention what - * kind of expectations they carry if they need to mutate or access the object - * in a thread-safe way. - */ -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child( - sentry_transaction_t *parent, const char *operation, - const char *description); -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child_n( - sentry_transaction_t *parent, const char *operation, size_t operation_len, - const char *description, size_t description_len); -/** - * Also starts a span like the regular `sentry_transaction_start_child_ts` - * functions, but has an additional timestamp parameter to let the user provide - * explicit timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child_ts( - sentry_transaction_t *parent, const char *operation, - const char *description, uint64_t timestamp); -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child_ts_n( - sentry_transaction_t *parent, const char *operation, size_t operation_len, - const char *description, size_t description_len, uint64_t timestamp); - -/** - * Starts a new Span. - * - * The return value of either `sentry_transaction_start_child` or - * `sentry_span_start_child` should be passed in as `parent`. This value can't - * be null, since we don't allow for orphan spans. - * - * Both `operation` and `description` can be null, but it is recommended to - * supply the former. See - * https://develop.sentry.dev/sdk/performance/span-operations/ for conventions - * around operations. - * - * See https://develop.sentry.dev/sdk/event-payloads/span/ for a description of - * the created Span's properties and expectations for `operation` and - * `description`. - * - * Returns a value that should be passed into `sentry_span_finish`. Not - * finishing the Span means it will be discarded, and will not be sent to - * sentry. `sentry_value_null` will be returned if the child Span could not be - * created. - * - * To ensure that any Events or Message Events are associated with this - * Span while it is active, invoke and pass in the Span returned - * by this function to `sentry_set_span`. Further documentation on this can be - * found in `sentry_set_span`'s docstring. - * - * The returned value is not thread-safe. Users are expected to ensure that - * appropriate locking mechanisms are implemented over the Span if it needs - * to be mutated across threads. Methods operating on the Span will mention what - * kind of expectations they carry if they need to mutate or access the object - * in a thread-safe way. - */ -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child( - sentry_span_t *parent, const char *operation, const char *description); -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child_n( - sentry_span_t *parent, const char *operation, size_t operation_len, - const char *description, size_t description_len); -/** - * Also starts a span like the regular `sentry_span_start_child_ts` functions, - * but has an additional timestamp parameter to let the user provide explicit - * timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child_ts( - sentry_span_t *parent, const char *operation, const char *description, - uint64_t timestamp); -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child_ts_n( - sentry_span_t *parent, const char *operation, size_t operation_len, - const char *description, size_t description_len, uint64_t timestamp); - -/** - * Finishes a Span. - * - * This takes ownership of `span`. A Span cannot be modified or re-used after it - * is finished. - * - * This will mutate the `span`'s containing Transaction, so the containing - * Transaction should also not be mutated by other functions when finishing a - * span. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_finish(sentry_span_t *span); -/** - * Also finishes a span like the regular `sentry_span_finish` function, but has - * an additional timestamp parameter to let the user provide explicit timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_finish_ts( - sentry_span_t *span, uint64_t timestamp); - -/** - * Sets a tag on a Transaction to the given string value. - * - * Tags longer than 200 bytes will be truncated. - * - * The Transaction should not be mutated by other functions while a tag is being - * set on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_tag( - sentry_transaction_t *transaction, const char *tag, const char *value); -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_tag_n( - sentry_transaction_t *transaction, const char *tag, size_t tag_len, - const char *value, size_t value_len); - -/** - * Removes a tag from a Transaction. - * - * The Transaction should not be mutated by other functions while a tag is being - * removed from it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_tag( - sentry_transaction_t *transaction, const char *tag); -SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_tag_n( - sentry_transaction_t *transaction, const char *tag, size_t tag_len); - -/** - * Sets the given key in a Transaction's "data" section to the given value. - * - * The Transaction should not be mutated by other functions while data is being - * set on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_data( - sentry_transaction_t *transaction, const char *key, sentry_value_t value); -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_data_n( - sentry_transaction_t *transaction, const char *key, size_t key_len, - sentry_value_t value); - -/** - * Removes a key from a Transaction's "data" section. - * - * The Transaction should not be mutated by other functions while data is being - * removed from it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_data( - sentry_transaction_t *transaction, const char *key); -SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_data_n( - sentry_transaction_t *transaction, const char *key, size_t key_len); - -/** - * Sets a tag on a Span to the given string value. - * - * Tags longer than 200 bytes will be truncated. - * - * The Span should not be mutated by other functions while a tag is being set on - * it. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_set_tag( - sentry_span_t *span, const char *tag, const char *value); -SENTRY_EXPERIMENTAL_API void sentry_span_set_tag_n(sentry_span_t *span, - const char *tag, size_t tag_len, const char *value, size_t value_len); - -/** - * Removes a tag from a Span. - * - * The Span should not be mutated by other functions while a tag is being - * removed from it. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_remove_tag( - sentry_span_t *span, const char *tag); -SENTRY_EXPERIMENTAL_API void sentry_span_remove_tag_n( - sentry_span_t *span, const char *tag, size_t tag_len); - -/** - * Sets the given key in a Span's "data" section to the given value. - * - * The Span should not be mutated by other functions while data is being set on - * it. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_set_data( - sentry_span_t *span, const char *key, sentry_value_t value); -SENTRY_EXPERIMENTAL_API void sentry_span_set_data_n( - sentry_span_t *span, const char *key, size_t key_len, sentry_value_t value); - -/** - * Removes a key from a Span's "data" section. - * - * The Span should not be mutated by other functions while data is being removed - * from it. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_remove_data( - sentry_span_t *span, const char *key); -SENTRY_EXPERIMENTAL_API void sentry_span_remove_data_n( - sentry_span_t *span, const char *key, size_t key_len); - -/** - * Sets a Transaction's name. - * - * The Transaction should not be mutated by other functions while setting its - * name. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_name( - sentry_transaction_t *transaction, const char *name); -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_name_n( - sentry_transaction_t *transaction, const char *name, size_t name_len); - -/** - * Creates a new User Feedback with a specific name, email and comments. - * - * See https://develop.sentry.dev/sdk/envelopes/#user-feedback - * - * User Feedback has to be associated with a specific event that has been - * sent to Sentry earlier. - */ -SENTRY_API sentry_value_t sentry_value_new_user_feedback( - const sentry_uuid_t *uuid, const char *name, const char *email, - const char *comments); -SENTRY_API sentry_value_t sentry_value_new_user_feedback_n( - const sentry_uuid_t *uuid, const char *name, size_t name_len, - const char *email, size_t email_len, const char *comments, - size_t comments_len); - -/** - * Captures a manually created User Feedback and sends it to Sentry. - */ -SENTRY_API void sentry_capture_user_feedback(sentry_value_t user_feedback); - -/** - * The status of a Span or Transaction. - * - * See https://develop.sentry.dev/sdk/event-payloads/span/ for documentation. - */ -typedef enum { - // The operation completed successfully. - // HTTP status 100..299 + successful redirects from the 3xx range. - SENTRY_SPAN_STATUS_OK, - // The operation was cancelled (typically by the user). - SENTRY_SPAN_STATUS_CANCELLED, - // Unknown. Any non-standard HTTP status code. - // "We do not know whether the transaction failed or succeeded." - SENTRY_SPAN_STATUS_UNKNOWN, - // Client specified an invalid argument. 4xx. - // Note that this differs from FailedPrecondition. InvalidArgument - // indicates arguments that are problematic regardless of the - // state of the system. - SENTRY_SPAN_STATUS_INVALID_ARGUMENT, - // Deadline expired before operation could complete. - // For operations that change the state of the system, this error may be - // returned even if the operation has been completed successfully. - // HTTP redirect loops and 504 Gateway Timeout. - SENTRY_SPAN_STATUS_DEADLINE_EXCEEDED, - // 404 Not Found. Some requested entity (file or directory) was not found. - SENTRY_SPAN_STATUS_NOT_FOUND, - // Already exists (409) - // Some entity that we attempted to create already exists. - SENTRY_SPAN_STATUS_ALREADY_EXISTS, - // 403 Forbidden - // The caller does not have permission to execute the specified operation. - SENTRY_SPAN_STATUS_PERMISSION_DENIED, - // 429 Too Many Requests - // Some resource has been exhausted, perhaps a per-user quota or perhaps - // the entire file system is out of space. - SENTRY_SPAN_STATUS_RESOURCE_EXHAUSTED, - // Operation was rejected because the system is not in a state required for - // the operation's execution. - SENTRY_SPAN_STATUS_FAILED_PRECONDITION, - // The operation was aborted, typically due to a concurrency issue. - SENTRY_SPAN_STATUS_ABORTED, - // Operation was attempted past the valid range. - SENTRY_SPAN_STATUS_OUT_OF_RANGE, - // 501 Not Implemented - // Operation is not implemented or not enabled. - SENTRY_SPAN_STATUS_UNIMPLEMENTED, - // Other/generic 5xx - SENTRY_SPAN_STATUS_INTERNAL_ERROR, - // 503 Service Unavailable - SENTRY_SPAN_STATUS_UNAVAILABLE, - // Unrecoverable data loss or corruption - SENTRY_SPAN_STATUS_DATA_LOSS, - // 401 Unauthorized (actually does mean unauthenticated according to RFC - // 7235) - // Prefer PermissionDenied if a user is logged in. - SENTRY_SPAN_STATUS_UNAUTHENTICATED, -} sentry_span_status_t; - -/** - * Sets a Span's status. - * - * The Span should not be mutated by other functions while setting its status. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_set_status( - sentry_span_t *span, sentry_span_status_t status); - -/** - * Sets a Transaction's status. - * - * The Transaction should not be mutated by other functions while setting its - * status. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_status( - sentry_transaction_t *tx, sentry_span_status_t status); - -/** - * Type of the `iter_headers` callback. - * - * The callback is being called with HTTP header key/value pairs. - * These headers can be attached to outgoing HTTP requests to propagate - * distributed tracing metadata to downstream services. - * - */ -typedef void (*sentry_iter_headers_function_t)( - const char *key, const char *value, void *userdata); - -/** - * Iterates the distributed tracing HTTP headers for the given span. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_iter_headers(sentry_span_t *span, - sentry_iter_headers_function_t callback, void *userdata); - -/** - * Iterates the distributed tracing HTTP headers for the given transaction. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_iter_headers( - sentry_transaction_t *tx, sentry_iter_headers_function_t callback, - void *userdata); - -/** - * Returns whether the application has crashed on the last run. - * - * Notes: - * * The underlying value is set by sentry_init() - it must be called first. - * * Call sentry_clear_crashed_last_run() to reset for the next app run. - * - * Possible return values: - * 1 = the last run was a crash - * 0 = no crash recognized - * -1 = sentry_init() hasn't been called yet - */ -SENTRY_EXPERIMENTAL_API int sentry_get_crashed_last_run(void); - -/** - * Clear the status of the "crashed-last-run". You should explicitly call - * this after sentry_init() if you're using sentry_get_crashed_last_run(). - * Otherwise, the same information is reported on any subsequent runs. - * - * Notes: - * * This doesn't change the value of sentry_get_crashed_last_run() yet. - * However, if sentry_init() is called again, the value will change. - * * This may only be called after sentry_init() and before sentry_close(). - * - * Returns 0 on success, 1 on error. - */ -SENTRY_EXPERIMENTAL_API int sentry_clear_crashed_last_run(void); - -/** - * Sentry SDK version. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_sdk_version(void); - -/** - * Sentry SDK name set during build time. - * Deprecated: Please use sentry_options_get_sdk_name instead. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_sdk_name(void); - -/** - * Sentry SDK User-Agent set during build time. - * Deprecated: Please use sentry_options_get_user_agent instead. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_sdk_user_agent(void); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_client.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_client.lib deleted file mode 100644 index 0d25fae..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_client.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_handler_lib.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_handler_lib.lib deleted file mode 100644 index 4caed89..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_handler_lib.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_minidump.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_minidump.lib deleted file mode 100644 index 7d1c556..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_minidump.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_snapshot.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_snapshot.lib deleted file mode 100644 index 0022ef5..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_snapshot.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_tools.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_tools.lib deleted file mode 100644 index 9126a9e..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_tools.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_util.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_util.lib deleted file mode 100644 index 0d44b0c..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_util.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/mini_chromium.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/mini_chromium.lib deleted file mode 100644 index 78e45cc..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/mini_chromium.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/sentry.lib b/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/sentry.lib deleted file mode 100644 index 941bbc0..0000000 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/sentry.lib and /dev/null differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/bin/crashpad_handler.exe b/Plugins/Sentry/Source/ThirdParty/Win64/bin/crashpad_handler.exe similarity index 93% rename from Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/bin/crashpad_handler.exe rename to Plugins/Sentry/Source/ThirdParty/Win64/bin/crashpad_handler.exe index 9762ad1..db292bf 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/bin/crashpad_handler.exe and b/Plugins/Sentry/Source/ThirdParty/Win64/bin/crashpad_handler.exe differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/bin/crashpad_wer.dll b/Plugins/Sentry/Source/ThirdParty/Win64/bin/crashpad_wer.dll similarity index 92% rename from Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/bin/crashpad_wer.dll rename to Plugins/Sentry/Source/ThirdParty/Win64/bin/crashpad_wer.dll index b6a07cb..f08fc87 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/bin/crashpad_wer.dll and b/Plugins/Sentry/Source/ThirdParty/Win64/bin/crashpad_wer.dll differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Breakpad/include/sentry.h b/Plugins/Sentry/Source/ThirdParty/Win64/include/sentry.h similarity index 93% rename from Plugins/Sentry/Source/ThirdParty/Win64/Breakpad/include/sentry.h rename to Plugins/Sentry/Source/ThirdParty/Win64/include/sentry.h index ae37205..9a7ada8 100644 --- a/Plugins/Sentry/Source/ThirdParty/Win64/Breakpad/include/sentry.h +++ b/Plugins/Sentry/Source/ThirdParty/Win64/include/sentry.h @@ -1,2577 +1,2723 @@ -/** - * sentry-native - * - * sentry-native is a C client to send events to native from - * C and C++ applications. It can work together with breakpad/crashpad - * but also send events on its own. - * - * NOTE on encodings: - * - * Sentry will assume an encoding of UTF-8 for all string data that is captured - * and being sent to sentry as an Event. - * All the functions that are dealing with *paths* will assume an OS-specific - * encoding, typically ANSI on Windows, UTF-8 macOS, and the locale encoding on - * Linux; and they provide wchar-compatible alternatives on Windows which are - * preferred. - * - * NOTE on attachments: - * - * Attachments are read lazily at the time of `sentry_capture_event`, - * `sentry_capture_event_with_scope`, or at time of a hard crash. Relative - * attachment paths will be resolved according to the current working directory - * at the time of envelope creation. When adding and removing attachments, they - * are matched according to their given `path`. No normalization is performed. - * When using the `crashpad` backend on macOS, the list of attachments that will - * be added at the time of a hard crash will be frozen at the time of - * `sentry_init`, and later modifications will not be reflected. - */ - -#ifndef SENTRY_H_INCLUDED -#define SENTRY_H_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -/* common platform detection */ -#ifdef _WIN32 -# define SENTRY_PLATFORM_WINDOWS -# ifdef _GAMING_XBOX_SCARLETT -# define SENTRY_PLATFORM_XBOX_SCARLETT -# endif -#elif defined(__APPLE__) -# include -# if defined(TARGET_OS_OSX) && TARGET_OS_OSX -# define SENTRY_PLATFORM_MACOS -# elif defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE -# define SENTRY_PLATFORM_IOS -# endif -# define SENTRY_PLATFORM_DARWIN -# define SENTRY_PLATFORM_UNIX -#elif defined(__ANDROID__) -# define SENTRY_PLATFORM_ANDROID -# define SENTRY_PLATFORM_LINUX -# define SENTRY_PLATFORM_UNIX -#elif defined(__PROSPERO__) -# define SENTRY_PLATFORM_PS -# define SENTRY_PLATFORM_UNIX -#elif defined(__linux) || defined(__linux__) -# define SENTRY_PLATFORM_LINUX -# define SENTRY_PLATFORM_UNIX -#elif defined(_AIX) -/* IBM i PASE is also counted as AIX */ -# define SENTRY_PLATFORM_AIX -# define SENTRY_PLATFORM_UNIX -#elif defined(__NX__) -# define SENTRY_PLATFORM_NX -#else -# error unsupported platform -#endif - -/* SDK Version */ -#ifndef SENTRY_SDK_NAME -# if defined(SENTRY_PLATFORM_ANDROID) -# define SENTRY_SDK_NAME "sentry.native.android" -# elif defined(SENTRY_PLATFORM_XBOX_SCARLETT) -# define SENTRY_SDK_NAME "sentry.native.xbox" -# else -# define SENTRY_SDK_NAME "sentry.native" -# endif -#endif -#define SENTRY_SDK_VERSION "0.9.1" -#define SENTRY_SDK_USER_AGENT SENTRY_SDK_NAME "/" SENTRY_SDK_VERSION - -/* marks a function as part of the sentry API */ -#ifndef SENTRY_API -# ifdef _WIN32 -# if defined(SENTRY_BUILD_SHARED) /* build dll */ -# define SENTRY_API __declspec(dllexport) -# elif !defined(SENTRY_BUILD_STATIC) /* use dll */ -# define SENTRY_API __declspec(dllimport) -# else /* static library */ -# define SENTRY_API -# endif -# else -# if __GNUC__ >= 4 -# define SENTRY_API __attribute__((visibility("default"))) -# else -# define SENTRY_API -# endif -# endif -#endif - -/* marks a function as experimental api */ -#ifndef SENTRY_EXPERIMENTAL_API -# define SENTRY_EXPERIMENTAL_API SENTRY_API -#endif - -#include -#include -#include - -/* context type dependencies */ -#ifdef _WIN32 -# include -#elif defined(SENTRY_PLATFORM_PS) -# include -#else -# include -#endif - -/** - * The library internally uses the system malloc and free functions to manage - * memory. It does not use realloc. The reason for this is that on unix - * platforms we fall back to a simplistic page allocator once we have - * encountered a SIGSEGV or other terminating signal as malloc is no longer - * safe to use. Since we cannot portably reallocate allocations made on the - * pre-existing allocator we're instead not using realloc. - * - * Note also that after SIGSEGV sentry_free() becomes a noop. - */ - -/** - * Allocates memory with the underlying allocator. - */ -SENTRY_API void *sentry_malloc(size_t size); - -/** - * Releases memory allocated from the underlying allocator. - */ -SENTRY_API void sentry_free(void *ptr); - -/** - * Legacy function. Alias for `sentry_free`. - */ -#define sentry_string_free sentry_free - -/* -- Protocol Value API -- */ - -/** - * Type of a sentry value. - */ -typedef enum { - SENTRY_VALUE_TYPE_NULL, - SENTRY_VALUE_TYPE_BOOL, - SENTRY_VALUE_TYPE_INT32, - SENTRY_VALUE_TYPE_DOUBLE, - SENTRY_VALUE_TYPE_STRING, - SENTRY_VALUE_TYPE_LIST, - SENTRY_VALUE_TYPE_OBJECT, -} sentry_value_type_t; - -/** - * Represents a sentry protocol value. - * - * The members of this type should never be accessed. They are only here - * so that alignment for the type can be properly determined. - * - * Values must be released with `sentry_value_decref`. This lowers the - * internal refcount by one. If the refcount hits zero it's freed. Some - * values like primitives have no refcount (like null) so operations on - * those are no-ops. - * - * In addition values can be frozen. Some values like primitives are always - * frozen but lists and dicts are not and can be frozen on demand. This - * automatically happens for some shared values in the event payload like - * the module list. - */ -union sentry_value_u { - uint64_t _bits; - double _double; -}; -typedef union sentry_value_u sentry_value_t; - -/** - * Increments the reference count on the value. - */ -SENTRY_API void sentry_value_incref(sentry_value_t value); - -/** - * Decrements the reference count on the value. - */ -SENTRY_API void sentry_value_decref(sentry_value_t value); - -/** - * Returns the refcount of a value. - */ -SENTRY_API size_t sentry_value_refcount(sentry_value_t value); - -/** - * Freezes a value. - */ -SENTRY_API void sentry_value_freeze(sentry_value_t value); - -/** - * Checks if a value is frozen. - */ -SENTRY_API int sentry_value_is_frozen(sentry_value_t value); - -/** - * Creates a null value. - */ -SENTRY_API sentry_value_t sentry_value_new_null(void); - -/** - * Creates a new 32-bit signed integer value. - */ -SENTRY_API sentry_value_t sentry_value_new_int32(int32_t value); - -/** - * Creates a new double value. - */ -SENTRY_API sentry_value_t sentry_value_new_double(double value); - -/** - * Creates a new boolean value. - */ -SENTRY_API sentry_value_t sentry_value_new_bool(int value); - -/** - * Creates a new null terminated string. - */ -SENTRY_API sentry_value_t sentry_value_new_string(const char *value); -SENTRY_API sentry_value_t sentry_value_new_string_n( - const char *value, size_t value_len); - -/** - * Creates a new list value. - */ -SENTRY_API sentry_value_t sentry_value_new_list(void); - -/** - * Creates a new object. - */ -SENTRY_API sentry_value_t sentry_value_new_object(void); -/** - * Creates a new user object. - * Will return a sentry_value_new_null if all parameters are null. - * - * This DOES NOT set the user object, this should still be done with - * sentry_set_user(), passing the return of this function as a parameter - */ -SENTRY_API sentry_value_t sentry_value_new_user(const char *id, - const char *username, const char *email, const char *ip_address); -SENTRY_API sentry_value_t sentry_value_new_user_n(const char *id, size_t id_len, - const char *username, size_t username_len, const char *email, - size_t email_len, const char *ip_address, size_t ip_address_len); - -/** - * Returns the type of the value passed. - */ -SENTRY_API sentry_value_type_t sentry_value_get_type(sentry_value_t value); - -/** - * Sets a key to a value in the map. - * - * This moves the ownership of the value into the map. The caller does not - * have to call `sentry_value_decref` on it. - */ -SENTRY_API int sentry_value_set_by_key( - sentry_value_t value, const char *k, sentry_value_t v); - -SENTRY_API int sentry_value_set_by_key_n( - sentry_value_t value, const char *k, size_t k_len, sentry_value_t v); - -/** - * This removes a value from the map by key. - */ -SENTRY_API int sentry_value_remove_by_key(sentry_value_t value, const char *k); -SENTRY_API int sentry_value_remove_by_key_n( - sentry_value_t value, const char *k, size_t k_len); - -/** - * Appends a value to a list. - * - * This moves the ownership of the value into the list. The caller does not - * have to call `sentry_value_decref` on it. - */ -SENTRY_API int sentry_value_append(sentry_value_t value, sentry_value_t v); - -/** - * Inserts a value into the list at a certain position. - * - * This moves the ownership of the value into the list. The caller does not - * have to call `sentry_value_decref` on it. - * - * If the list is shorter than the given index it's automatically extended - * and filled with `null` values. - */ -SENTRY_API int sentry_value_set_by_index( - sentry_value_t value, size_t index, sentry_value_t v); - -/** - * This removes a value from the list by index. - */ -SENTRY_API int sentry_value_remove_by_index(sentry_value_t value, size_t index); - -/** - * Looks up a value in a map by key. If missing a null value is returned. - * The returned value is borrowed. - */ -SENTRY_API sentry_value_t sentry_value_get_by_key( - sentry_value_t value, const char *k); -SENTRY_API sentry_value_t sentry_value_get_by_key_n( - sentry_value_t value, const char *k, size_t k_len); - -/** - * Looks up a value in a map by key. If missing a null value is returned. - * The returned value is owned. - * - * If the caller no longer needs the value it must be released with - * `sentry_value_decref`. - */ -SENTRY_API sentry_value_t sentry_value_get_by_key_owned( - sentry_value_t value, const char *k); -SENTRY_API sentry_value_t sentry_value_get_by_key_owned_n( - sentry_value_t value, const char *k, size_t k_len); - -/** - * Looks up a value in a list by index. If missing a null value is returned. - * The returned value is borrowed. - */ -SENTRY_API sentry_value_t sentry_value_get_by_index( - sentry_value_t value, size_t index); - -/** - * Looks up a value in a list by index. If missing a null value is - * returned. The returned value is owned. - * - * If the caller no longer needs the value it must be released with - * `sentry_value_decref`. - */ -SENTRY_API sentry_value_t sentry_value_get_by_index_owned( - sentry_value_t value, size_t index); - -/** - * Returns the length of the given map or list. - * - * If an item is not a list or map the return value is 0. - */ -SENTRY_API size_t sentry_value_get_length(sentry_value_t value); - -/** - * Converts a value into a 32bit signed integer. - */ -SENTRY_API int32_t sentry_value_as_int32(sentry_value_t value); - -/** - * Converts a value into a double value. - */ -SENTRY_API double sentry_value_as_double(sentry_value_t value); - -/** - * Returns the value as c string. - */ -SENTRY_API const char *sentry_value_as_string(sentry_value_t value); - -/** - * Returns `true` if the value is boolean true. - */ -SENTRY_API int sentry_value_is_true(sentry_value_t value); - -/** - * Returns `true` if the value is null. - */ -SENTRY_API int sentry_value_is_null(sentry_value_t value); - -/** - * Serialize a sentry value to JSON. - * - * The string is freshly allocated and must be freed with - * `sentry_string_free`. - */ -SENTRY_API char *sentry_value_to_json(sentry_value_t value); - -/** - * Sentry levels for events and breadcrumbs. - */ -typedef enum sentry_level_e { - SENTRY_LEVEL_DEBUG = -1, - SENTRY_LEVEL_INFO = 0, - SENTRY_LEVEL_WARNING = 1, - SENTRY_LEVEL_ERROR = 2, - SENTRY_LEVEL_FATAL = 3, -} sentry_level_t; - -/** - * Creates a new empty Event value. - * - * See https://docs.sentry.io/platforms/native/enriching-events/ for how to - * further work with events, and https://develop.sentry.dev/sdk/event-payloads/ - * for a detailed overview of the possible properties of an Event. - */ -SENTRY_API sentry_value_t sentry_value_new_event(void); - -/** - * Creates a new Message Event value. - * - * See https://develop.sentry.dev/sdk/event-payloads/message/ - * - * `logger` can be NULL to omit the logger value. - */ -SENTRY_API sentry_value_t sentry_value_new_message_event( - sentry_level_t level, const char *logger, const char *text); -SENTRY_API sentry_value_t sentry_value_new_message_event_n(sentry_level_t level, - const char *logger, size_t logger_len, const char *text, size_t text_len); - -/** - * Creates a new Breadcrumb with a specific type and message. - * - * See https://develop.sentry.dev/sdk/event-payloads/breadcrumbs/ - * - * Either parameter can be NULL in which case no such attributes is created. - */ -SENTRY_API sentry_value_t sentry_value_new_breadcrumb( - const char *type, const char *message); -SENTRY_API sentry_value_t sentry_value_new_breadcrumb_n( - const char *type, size_t type_len, const char *message, size_t message_len); - -/** - * Creates a new Exception value. - * - * This is intended for capturing language-level exception, such as from a - * try-catch block. `type` and `value` here refer to the exception class and - * a possible description. - * - * See https://develop.sentry.dev/sdk/event-payloads/exception/ - * - * The returned value needs to be attached to an event via - * `sentry_event_add_exception`. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_exception( - const char *type, const char *value); -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_exception_n( - const char *type, size_t type_len, const char *value, size_t value_len); - -/** - * Creates a new Thread value. - * - * See https://develop.sentry.dev/sdk/event-payloads/threads/ - * - * The returned value needs to be attached to an event via - * `sentry_event_add_thread`. - * - * `name` can be NULL. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_thread( - uint64_t id, const char *name); -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_thread_n( - uint64_t id, const char *name, size_t name_len); - -/** - * Creates a new Stack Trace conforming to the Stack Trace Interface. - * - * See https://develop.sentry.dev/sdk/event-payloads/stacktrace/ - * - * The returned object must be attached to either an exception or thread - * object. - * - * If `ips` is NULL the current stack trace is captured, otherwise `len` - * stack trace instruction pointers are attached to the event. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_stacktrace( - void **ips, size_t len); - -/** - * Sets the Stack Trace conforming to the Stack Trace Interface in a value. - * - * The value argument must be either an exception or thread object. - * - * If `ips` is NULL the current stack trace is captured, otherwise `len` stack - * trace instruction pointers are attached to the event. - */ -SENTRY_EXPERIMENTAL_API void sentry_value_set_stacktrace( - sentry_value_t value, void **ips, size_t len); - -/** - * Adds an Exception to an Event value. - * - * This takes ownership of the `exception`. - */ -SENTRY_EXPERIMENTAL_API void sentry_event_add_exception( - sentry_value_t event, sentry_value_t exception); - -/** - * Adds a Thread to an Event value. - * - * This takes ownership of the `thread`. - */ -SENTRY_EXPERIMENTAL_API void sentry_event_add_thread( - sentry_value_t event, sentry_value_t thread); - -/* -- Experimental APIs -- */ - -/** - * Serialize a sentry value to msgpack. - * - * The string is freshly allocated and must be freed with - * `sentry_string_free`. Since msgpack is not zero terminated - * the size is written to the `size_out` parameter. - */ -SENTRY_EXPERIMENTAL_API char *sentry_value_to_msgpack( - sentry_value_t value, size_t *size_out); - -/** - * Adds a stack trace to an event. - * - * The stack trace is added as part of a new thread object. - * This function is **deprecated** in favor of using - * `sentry_value_new_stacktrace` in combination with `sentry_value_new_thread` - * and `sentry_event_add_thread`. - * - * If `ips` is NULL the current stack trace is captured, otherwise `len` - * stack trace instruction pointers are attached to the event. - */ -SENTRY_EXPERIMENTAL_API void sentry_event_value_add_stacktrace( - sentry_value_t event, void **ips, size_t len); - -/** - * This represents the OS dependent user context in the case of a crash, and can - * be used to manually capture a crash. - */ -typedef struct sentry_ucontext_s { -#ifdef _WIN32 - EXCEPTION_POINTERS exception_ptrs; -#elif defined(SENTRY_PLATFORM_PS) - int data; -#else - int signum; - siginfo_t *siginfo; - ucontext_t *user_context; -#endif -} sentry_ucontext_t; - -/** - * Unwinds the stack from the given address. - * - * If the address is given in `addr` the stack is unwound form there. - * Otherwise (NULL is passed) the current instruction pointer is used as - * start address. - * Unwinding with a given `addr` is not supported on all platforms. - * - * The stack trace in the form of instruction-addresses, is written to the - * caller allocated `stacktrace_out`, with up to `max_len` frames being written. - * The actual number of unwound stackframes is returned. - */ -SENTRY_EXPERIMENTAL_API size_t sentry_unwind_stack( - void *addr, void **stacktrace_out, size_t max_len); - -/** - * Unwinds the stack from the given context. - * - * The caller is responsible to construct an appropriate `sentry_ucontext_t`. - * Unwinding from a user context is not supported on all platforms. - * - * The stack trace in the form of instruction-addresses, is written to the - * caller allocated `stacktrace_out`, with up to `max_len` frames being written. - * The actual number of unwound stackframes is returned. - */ -SENTRY_EXPERIMENTAL_API size_t sentry_unwind_stack_from_ucontext( - const sentry_ucontext_t *uctx, void **stacktrace_out, size_t max_len); - -/** - * A UUID - */ -typedef struct sentry_uuid_s { - char bytes[16]; -} sentry_uuid_t; - -/** - * Creates the nil uuid. - */ -SENTRY_API sentry_uuid_t sentry_uuid_nil(void); - -/** - * Creates a new uuid4. - */ -SENTRY_API sentry_uuid_t sentry_uuid_new_v4(void); - -/** - * Parses a uuid from a string. - */ -SENTRY_API sentry_uuid_t sentry_uuid_from_string(const char *str); -SENTRY_API sentry_uuid_t sentry_uuid_from_string_n( - const char *str, size_t str_len); - -/** - * Creates a uuid from bytes. - */ -SENTRY_API sentry_uuid_t sentry_uuid_from_bytes(const char bytes[16]); - -/** - * Checks if the uuid is nil. - */ -SENTRY_API int sentry_uuid_is_nil(const sentry_uuid_t *uuid); - -/** - * Returns the bytes of the uuid. - */ -SENTRY_API void sentry_uuid_as_bytes(const sentry_uuid_t *uuid, char bytes[16]); - -/** - * Formats the uuid into a string buffer. - */ -SENTRY_API void sentry_uuid_as_string(const sentry_uuid_t *uuid, char str[37]); - -/** - * A Sentry Envelope. - * - * The Envelope is an abstract type which represents a payload being sent to - * sentry. It can contain one or more items, typically an Event. - * See https://develop.sentry.dev/sdk/envelopes/ - */ -struct sentry_envelope_s; -typedef struct sentry_envelope_s sentry_envelope_t; - -/** - * Frees an envelope. - */ -SENTRY_API void sentry_envelope_free(sentry_envelope_t *envelope); - -/** - * Given an Envelope, returns the embedded Event if there is one. - * - * This returns a borrowed value to the Event in the Envelope. - */ -SENTRY_API sentry_value_t sentry_envelope_get_event( - const sentry_envelope_t *envelope); - -/** - * Given an Envelope, returns the embedded Transaction if there is one. - * - * This returns a borrowed value to the Transaction in the Envelope. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_envelope_get_transaction( - const sentry_envelope_t *envelope); - -/** - * Serializes the envelope. - * - * The return value needs to be freed with sentry_string_free(). - */ -SENTRY_API char *sentry_envelope_serialize( - const sentry_envelope_t *envelope, size_t *size_out); - -/** - * Serializes the envelope into a file. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * - * Returns 0 on success. - */ -SENTRY_API int sentry_envelope_write_to_file( - const sentry_envelope_t *envelope, const char *path); -SENTRY_API int sentry_envelope_write_to_file_n( - const sentry_envelope_t *envelope, const char *path, size_t path_len); - -/** - * The Sentry Client Options. - * - * See https://docs.sentry.io/platforms/native/configuration/ - */ -struct sentry_options_s; -typedef struct sentry_options_s sentry_options_t; - -/** - * This represents an interface for user-defined transports. - * - * Transports are responsible for sending envelopes to sentry and are the last - * step in the event pipeline. - * - * Envelopes will be submitted to the transport in a _fire and forget_ fashion, - * and the transport must send those envelopes _in order_. - * - * A transport has the following hooks, all of which - * take the user provided `state` as last parameter. The transport state needs - * to be set with `sentry_transport_set_state` and typically holds handles and - * other information that can be reused across requests. - * - * * `send_func`: This function will take ownership of an envelope, and is - * responsible for freeing it via `sentry_envelope_free`. - * * `startup_func`: This hook will be called by sentry inside of `sentry_init` - * and instructs the transport to initialize itself. Failures will bubble up - * to `sentry_init`. - * * `flush_func`: Instructs the transport to flush its queue. - * This hook receives a millisecond-resolution `timeout` parameter and should - * return `0` if the transport queue is flushed within the timeout. - * * `shutdown_func`: Instructs the transport to flush its queue and shut down. - * This hook receives a millisecond-resolution `timeout` parameter and should - * return `0` if the transport is flushed and shut down successfully. - * In case of a non-zero return value, sentry will log an error, but continue - * with freeing the transport. - * * `free_func`: Frees the transports `state`. This hook might be called even - * though `shutdown_func` returned a failure code previously. - * - * The transport interface might be extended in the future with hooks to flush - * its internal queue without shutting down, and to dump its internal queue to - * disk in case of a hard crash. - */ -struct sentry_transport_s; -typedef struct sentry_transport_s sentry_transport_t; - -/** - * Creates a new transport with an initial `send_func`. - */ -SENTRY_API sentry_transport_t *sentry_transport_new( - void (*send_func)(sentry_envelope_t *envelope, void *state)); - -/** - * Sets the transport `state`. - * - * If the state is owned by the transport and needs to be freed, use - * `sentry_transport_set_free_func` to set an appropriate hook. - */ -SENTRY_API void sentry_transport_set_state( - sentry_transport_t *transport, void *state); - -/** - * Sets the transport hook to free the transport `state`. - */ -SENTRY_API void sentry_transport_set_free_func( - sentry_transport_t *transport, void (*free_func)(void *state)); - -/** - * Sets the transport startup hook. - * - * This hook is called from within `sentry_init` and will get a reference to the - * options which can be used to initialize a transports internal state. - * It should return `0` on success. A failure will bubble up to `sentry_init`. - */ -SENTRY_API void sentry_transport_set_startup_func(sentry_transport_t *transport, - int (*startup_func)(const sentry_options_t *options, void *state)); - -/** - * Sets the transport flush hook. - * - * This hook will receive a millisecond-resolution timeout. - * It should return `0` if all the pending envelopes are - * sent within the timeout, or `1` if the timeout is hit. - */ -SENTRY_API void sentry_transport_set_flush_func(sentry_transport_t *transport, - int (*flush_func)(uint64_t timeout, void *state)); - -/** - * Sets the transport shutdown hook. - * - * This hook will receive a millisecond-resolution timeout. - * It should return `0` on success in case all the pending envelopes have been - * sent within the timeout, or `1` if the timeout was hit. - */ -SENTRY_API void sentry_transport_set_shutdown_func( - sentry_transport_t *transport, - int (*shutdown_func)(uint64_t timeout, void *state)); - -/** - * Generic way to free a transport. - */ -SENTRY_API void sentry_transport_free(sentry_transport_t *transport); - -/** - * Create a new function transport. - * - * It is a convenience function which works with a borrowed `data`, and will - * automatically free the envelope, so the user provided function does not need - * to do that. - * - * This function is *deprecated* and will be removed in a future version. - * It is here for backwards compatibility. Users should migrate to the - * `sentry_transport_new` API. - */ -SENTRY_API sentry_transport_t *sentry_new_function_transport( - void (*func)(const sentry_envelope_t *envelope, void *data), void *data); - -/** - * This represents an interface for user-defined backends. - * - * Backends are responsible to handle crashes. They are maintained at runtime - * via various life-cycle hooks from the sentry-core. - * - * At this point none of those interfaces are exposed in the API including - * creation and destruction. The main use-case of the backend in the API at this - * point is to disable it via `sentry_options_set_backend` at runtime before it - * is initialized. - */ -struct sentry_backend_s; -typedef struct sentry_backend_s sentry_backend_t; - -/* -- Options APIs -- */ - -/** - * The state of user consent. - */ -typedef enum { - SENTRY_USER_CONSENT_UNKNOWN = -1, - SENTRY_USER_CONSENT_GIVEN = 1, - SENTRY_USER_CONSENT_REVOKED = 0, -} sentry_user_consent_t; - -/** - * The crash handler strategy. - */ -typedef enum { - SENTRY_HANDLER_STRATEGY_DEFAULT = 0, - SENTRY_HANDLER_STRATEGY_CHAIN_AT_START = 1, -} sentry_handler_strategy_t; - -/** - * Creates a new options struct. - * Can be freed with `sentry_options_free`. - */ -SENTRY_API sentry_options_t *sentry_options_new(void); - -/** - * Deallocates previously allocated sentry options. - */ -SENTRY_API void sentry_options_free(sentry_options_t *opts); - -/** - * Sets a transport. - */ -SENTRY_API void sentry_options_set_transport( - sentry_options_t *opts, sentry_transport_t *transport); - -#ifdef SENTRY_PLATFORM_NX -/** - * Function to start a network connection. - * This is called on a background thread so it must be thread-safe. - */ -SENTRY_API void sentry_options_set_network_connect_func( - sentry_options_t *opts, void (*network_connect_func)(void)); - -/** - * If false (the default), the SDK won't add PII or other sensitive data to the - * payload. For example, a pseudo-random identifier combining device and app ID. - */ -SENTRY_API void sentry_options_set_send_default_pii( - sentry_options_t *opts, int value); -#endif - -/** - * Type of the `before_send` callback. - * - * The callback takes ownership of the `event`, and should usually return that - * same event. In case the event should be discarded, the callback needs to - * call `sentry_value_decref` on the provided event, and return a - * `sentry_value_new_null()` instead. - * - * If you have set an `on_crash` callback (independent of whether it discards or - * retains the event), `before_send` will no longer be invoked for crash-events, - * which allows you to better distinguish between crashes and all other events - * in client-side pre-processing. - * - * This function may be invoked inside of a signal handler and must be safe for - * that purpose, see https://man7.org/linux/man-pages/man7/signal-safety.7.html. - * On Windows, it may be called from inside of a `UnhandledExceptionFilter`, see - * the documentation on SEH (structured exception handling) for more information - * https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling - * - * Up to version 0.4.18 the `before_send` callback wasn't invoked in case the - * event sampling discarded an event. In the current implementation the - * `before_send` callback is invoked even if the event sampling discards the - * event, following the cross-SDK session filter order: - * - * https://develop.sentry.dev/sdk/sessions/#filter-order - * - * On Windows the crashpad backend can capture fast-fail crashes which by-pass - * SEH. Since the `before_send` is called by a local exception-handler, it will - * not be invoked when such a crash happened, even though a minidump will be - * sent. - */ -typedef sentry_value_t (*sentry_event_function_t)( - sentry_value_t event, void *hint, void *user_data); - -/** - * Sets the `before_send` callback. - * - * See the `sentry_event_function_t` typedef above for more information. - */ -SENTRY_API void sentry_options_set_before_send( - sentry_options_t *opts, sentry_event_function_t func, void *user_data); - -/** - * Type of the `on_crash` callback. - * - * The `on_crash` callback replaces the `before_send` callback for crash events. - * The interface is analogous to `before_send` in that the callback takes - * ownership of the `event`, and should usually return that same event. In case - * the event should be discarded, the callback needs to call - * `sentry_value_decref` on the provided event, and return a - * `sentry_value_new_null()` instead. - * - * Only the `inproc` backend currently fills the passed-in event with crash - * meta-data. Since both `breakpad` and `crashpad` use minidumps to capture the - * crash state, the passed-in event is empty when using these backends. Changes - * to the event from inside the hooks will be passed along, but in the case of - * the minidump backends these changes might get overwritten during server-side - * ingestion and processing. This primarily affects the exception payloads which - * are auto-generated from the minidump content. See - * https://github.com/getsentry/sentry-native/issues/1147 for details. - * - * If you set this callback in the options, it prevents a concurrently enabled - * `before_send` callback from being invoked in the crash case. This allows for - * better differentiation between crashes and other events and gradual migration - * from existing `before_send` implementations: - * - * - if you have a `before_send` implementation and do not define an `on_crash` - * callback your application will receive both normal and crash events as - * before - * - if you have a `before_send` implementation but only want to handle normal - * events with it, then you can define an `on_crash` callback that returns - * the passed-in event and does nothing else - * - if you are not interested in normal events, but only want to act on - * crashes (within the limits mentioned below), then only define an - * `on_crash` callback with the option to filter (on all backends) or enrich - * (only inproc) the crash event - * - * This function may be invoked inside of a signal handler and must be safe for - * that purpose, see https://man7.org/linux/man-pages/man7/signal-safety.7.html. - * On Windows, it may be called from inside of a `UnhandledExceptionFilter`, see - * the documentation on SEH (structured exception handling) for more information - * https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling - * - * Platform-specific behavior: - * - * - does not work with crashpad on macOS. - * - for breakpad on Linux the `uctx` parameter is always NULL. - * - on Windows the crashpad backend can capture fast-fail crashes which - * by-pass SEH. Since `on_crash` is called by a local exception-handler, it will - * not be invoked when such a crash happened, even though a minidump will be - * sent. - */ -typedef sentry_value_t (*sentry_crash_function_t)( - const sentry_ucontext_t *uctx, sentry_value_t event, void *user_data); - -/** - * Sets the `on_crash` callback. - * - * See the `sentry_crash_function_t` typedef above for more information. - */ -SENTRY_API void sentry_options_set_on_crash( - sentry_options_t *opts, sentry_crash_function_t func, void *data); - -/** - * Sets the DSN. - */ -SENTRY_API void sentry_options_set_dsn(sentry_options_t *opts, const char *dsn); -SENTRY_API void sentry_options_set_dsn_n( - sentry_options_t *opts, const char *dsn, size_t dsn_len); - -/** - * Gets the DSN. - */ -SENTRY_API const char *sentry_options_get_dsn(const sentry_options_t *opts); - -/** - * Sets the sample rate, which should be a double between `0.0` and `1.0`. - * Sentry will randomly discard any event that is captured using - * `sentry_capture_event` when a sample rate < 1 is set. - * - * The sampling happens at the end of the event processing according to the - * following order: - * - * https://develop.sentry.dev/sdk/sessions/#filter-order - * - * Only items 3. to 6. are currently applicable to sentry-native. This means - * each processing step is executed even if the sampling discards the event - * before sending it to the backend. This is particularly relevant to users of - * the `before_send` callback. - * - * The above is in contrast to versions up to 0.4.18 where the sampling happened - * at the beginning of the processing/filter sequence. - */ -SENTRY_API void sentry_options_set_sample_rate( - sentry_options_t *opts, double sample_rate); - -/** - * Gets the sample rate. - */ -SENTRY_API double sentry_options_get_sample_rate(const sentry_options_t *opts); - -/** - * Sets the release. - */ -SENTRY_API void sentry_options_set_release( - sentry_options_t *opts, const char *release); -SENTRY_API void sentry_options_set_release_n( - sentry_options_t *opts, const char *release, size_t release_len); - -/** - * Gets the release. - */ -SENTRY_API const char *sentry_options_get_release(const sentry_options_t *opts); - -/** - * Sets the environment. - */ -SENTRY_API void sentry_options_set_environment( - sentry_options_t *opts, const char *environment); -SENTRY_API void sentry_options_set_environment_n( - sentry_options_t *opts, const char *environment, size_t environment_len); - -/** - * Gets the environment. - */ -SENTRY_API const char *sentry_options_get_environment( - const sentry_options_t *opts); - -/** - * Sets the dist. - */ -SENTRY_API void sentry_options_set_dist( - sentry_options_t *opts, const char *dist); -SENTRY_API void sentry_options_set_dist_n( - sentry_options_t *opts, const char *dist, size_t dist_len); - -/** - * Gets the dist. - */ -SENTRY_API const char *sentry_options_get_dist(const sentry_options_t *opts); - -/** - * Configures the proxy. - * - * The given proxy has to include the full scheme, - * eg. `http://some.proxy/` or `socks5://some.proxy/`. - * - * Not every transport behaves the same way when configuring a proxy. - * On Windows if a transport can't connect to the proxy it will fall back on a - * connection without proxy. This is also true for the crashpad_handler - * transport on macOS for a socks proxy, but not for a http proxy. - * All transports that use libcurl (Linux and the Native SDK transport on macOS) - * will honor the proxy settings and not fall back. - */ -SENTRY_API void sentry_options_set_proxy( - sentry_options_t *opts, const char *proxy); -SENTRY_API void sentry_options_set_proxy_n( - sentry_options_t *opts, const char *proxy, size_t proxy_len); - -/** - * Returns the configured proxy. - */ -SENTRY_API const char *sentry_options_get_proxy(const sentry_options_t *opts); - -/** - * Configures the proxy. - * - * This is a **deprecated** alias for `sentry_options_set_proxy(_n)`. - * - * The given proxy has to include the full scheme, - * eg. `http://some.proxy/. - */ -SENTRY_API void sentry_options_set_http_proxy( - sentry_options_t *opts, const char *proxy); -SENTRY_API void sentry_options_set_http_proxy_n( - sentry_options_t *opts, const char *proxy, size_t proxy_len); - -/** - * Returns the configured proxy. - */ -SENTRY_API const char *sentry_options_get_http_proxy( - const sentry_options_t *opts); - -/** - * Configures the path to a file containing ssl certificates for - * verification. - */ -SENTRY_API void sentry_options_set_ca_certs( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_set_ca_certs_n( - sentry_options_t *opts, const char *path, size_t path_len); - -/** - * Returns the configured path for ca certificates. - */ -SENTRY_API const char *sentry_options_get_ca_certs( - const sentry_options_t *opts); - -/** - * Configures the name of the http transport thread. - */ -SENTRY_API void sentry_options_set_transport_thread_name( - sentry_options_t *opts, const char *name); -SENTRY_API void sentry_options_set_transport_thread_name_n( - sentry_options_t *opts, const char *name, size_t name_len); - -/** - * Returns the configured http transport thread name. - */ -SENTRY_API const char *sentry_options_get_transport_thread_name( - const sentry_options_t *opts); - -/* - * Configures the name of the sentry SDK. Returns 0 on success. - */ -SENTRY_API int sentry_options_set_sdk_name( - sentry_options_t *opts, const char *sdk_name); - -/* - * Configures the name of the sentry SDK. Returns 0 on success. - */ -SENTRY_API int sentry_options_set_sdk_name_n( - sentry_options_t *opts, const char *sdk_name, size_t sdk_name_len); - -/** - * Returns the configured sentry SDK name. Unless overwritten this defaults to - * SENTRY_SDK_NAME. - */ -SENTRY_API const char *sentry_options_get_sdk_name( - const sentry_options_t *opts); - -/** - * Returns the user agent. Unless overwritten this defaults to - * "SENTRY_SDK_NAME / SENTRY_SDK_VERSION". - */ -SENTRY_API const char *sentry_options_get_user_agent( - const sentry_options_t *opts); - -/** - * Enables or disables debug printing mode. To change the log level from the - * default DEBUG level, use `sentry_options_set_logger_level`. - */ -SENTRY_API void sentry_options_set_debug(sentry_options_t *opts, int debug); - -/** - * Returns the current value of the debug flag. - */ -SENTRY_API int sentry_options_get_debug(const sentry_options_t *opts); - -/** - * Sets the level of the logger. Has no effect if `debug` is not set to true. - */ -SENTRY_API void sentry_options_set_logger_level( - sentry_options_t *opts, sentry_level_t level); - -/** - * Sets the number of breadcrumbs being tracked and attached to events. - * - * Defaults to 100. - */ -SENTRY_API void sentry_options_set_max_breadcrumbs( - sentry_options_t *opts, size_t max_breadcrumbs); - -/** - * Gets the number of breadcrumbs being tracked and attached to events. - */ -SENTRY_API size_t sentry_options_get_max_breadcrumbs( - const sentry_options_t *opts); - -/** - * Type of the callback for logger function. - */ -typedef void (*sentry_logger_function_t)( - sentry_level_t level, const char *message, va_list args, void *userdata); - -/** - * Sets the sentry-native logger function. - * - * Used for logging debug events when the `debug` option is set to true. - * - * Note: Multiple threads may invoke your `func`. If you plan to mutate any data - * inside the `userdata` argument after initialization, you must ensure proper - * synchronization inside the logger function. - * - */ -SENTRY_API void sentry_options_set_logger( - sentry_options_t *opts, sentry_logger_function_t func, void *userdata); - -/** - * Enables or disables automatic session tracking. - * - * Automatic session tracking is enabled by default and is equivalent to calling - * `sentry_start_session` after startup. - * There can only be one running session, and the current session will always be - * closed implicitly by `sentry_close`, when starting a new session with - * `sentry_start_session`, or manually by calling `sentry_end_session`. - */ -SENTRY_API void sentry_options_set_auto_session_tracking( - sentry_options_t *opts, int val); - -/** - * Returns true if automatic session tracking is enabled. - */ -SENTRY_API int sentry_options_get_auto_session_tracking( - const sentry_options_t *opts); - -/** - * Enables or disables user consent requirements for uploads. - * - * This disables uploads until the user has given the consent to the SDK. - * Consent itself is given with `sentry_user_consent_give` and - * `sentry_user_consent_revoke`. - */ -SENTRY_API void sentry_options_set_require_user_consent( - sentry_options_t *opts, int val); - -/** - * Returns true if user consent is required. - */ -SENTRY_API int sentry_options_get_require_user_consent( - const sentry_options_t *opts); - -/** - * Enables or disables on-device symbolication of stack traces. - * - * This feature can have a performance impact, and is enabled by default on - * Android. It is usually only needed when it is not possible to provide debug - * information files for system libraries which are needed for serverside - * symbolication. - */ -SENTRY_API void sentry_options_set_symbolize_stacktraces( - sentry_options_t *opts, int val); - -/** - * Returns true if on-device symbolication of stack traces is enabled. - */ -SENTRY_API int sentry_options_get_symbolize_stacktraces( - const sentry_options_t *opts); - -/** - * Adds a new attachment to be sent along. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use `sentry_options_add_attachmentw` - * instead. - * - * See the NOTE on attachments above for restrictions of this API. - */ -SENTRY_API void sentry_options_add_attachment( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_add_attachment_n( - sentry_options_t *opts, const char *path, size_t path_len); - -/** - * Adds a new view hierarchy attachment to be sent along. - * - * The primary use-case is for downstream SDKs (like sentry-godot). The - * view-hierarchy.json file should follow the representation defined in RFC#33 - * https://github.com/getsentry/rfcs/blob/main/text/0033-view-hierarchy.md - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use - * `sentry_options_add_view_hierarchyw` instead. - */ -SENTRY_API void sentry_options_add_view_hierarchy( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_add_view_hierarchy_n( - sentry_options_t *opts, const char *path, size_t path_len); - -/** - * Enables or disables attaching screenshots to fatal error events. Disabled by - * default. - * - * This feature is currently supported by all backends on Windows. Only the - * `crashpad` backend can capture screenshots of fast-fail crashes that bypass - * SEH (structured exception handling). - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_attach_screenshot( - sentry_options_t *opts, int val); - -/** - * Sets the path to the crashpad handler if the crashpad backend is used. - * - * The path defaults to the `crashpad_handler`/`crashpad_handler.exe` - * executable, depending on platform, which is expected to be present in the - * same directory as the app executable. - * - * It is recommended that library users set an explicit handler path, depending - * on the directory/executable structure of their app. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use `sentry_options_set_handler_pathw` - * instead. - */ -SENTRY_API void sentry_options_set_handler_path( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_set_handler_path_n( - sentry_options_t *opts, const char *path, size_t path_len); - -/** - * Sets the path to the Sentry Database Directory. - * - * Sentry will use this path to persist user consent, sessions, and other - * artifacts in case of a crash. This will also be used by the crashpad backend - * if it is configured. - * - * The directory is used for "cached" data, which needs to persist across - * application restarts to ensure proper flagging of release-health sessions, - * but might otherwise be safely purged regularly. - * - * It is roughly equivalent to the type of `AppData/Local` on Windows and - * `XDG_CACHE_HOME` on Linux, and equivalent runtime directories on other - * platforms. - * - * It is recommended that users set an explicit absolute path, depending - * on their apps runtime directory. The path will be created if it does not - * exist, and will be resolved to an absolute path inside of `sentry_init`. The - * directory should not be shared with other application data/configuration, as - * sentry-native will enumerate and possibly delete files in that directory. An - * example might be `$XDG_CACHE_HOME/your-app/sentry` - * - * If no explicit path it set, sentry-native will default to `.sentry-native` in - * the current working directory, with no specific platform-specific handling. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use - * `sentry_options_set_database_pathw` instead. - */ -SENTRY_API void sentry_options_set_database_path( - sentry_options_t *opts, const char *path); -SENTRY_API void sentry_options_set_database_path_n( - sentry_options_t *opts, const char *path, size_t path_len); - -#ifdef SENTRY_PLATFORM_WINDOWS -/** - * Wide char version of `sentry_options_add_attachment`. - */ -SENTRY_API void sentry_options_add_attachmentw( - sentry_options_t *opts, const wchar_t *path); -SENTRY_API void sentry_options_add_attachmentw_n( - sentry_options_t *opts, const wchar_t *path, size_t path_len); - -/** - * Wide char version of `sentry_options_add_view_hierarchy`. - */ -SENTRY_API void sentry_options_add_view_hierarchyw( - sentry_options_t *opts, const wchar_t *path); -SENTRY_API void sentry_options_add_view_hierarchyw_n( - sentry_options_t *opts, const wchar_t *path, size_t path_len); - -/** - * Wide char version of `sentry_options_set_handler_path`. - */ -SENTRY_API void sentry_options_set_handler_pathw( - sentry_options_t *opts, const wchar_t *path); -SENTRY_API void sentry_options_set_handler_pathw_n( - sentry_options_t *opts, const wchar_t *path, size_t path_len); - -/** - * Wide char version of `sentry_options_set_database_path`. - */ -SENTRY_API void sentry_options_set_database_pathw( - sentry_options_t *opts, const wchar_t *path); -SENTRY_API void sentry_options_set_database_pathw_n( - sentry_options_t *opts, const wchar_t *path, size_t path_len); - -/** - * Allows users to define a thread stack guarantee manually on each thread. This - * is necessary for crash handlers to run after a thread crashed due to a - * stack-overflow on Windows. - * - * By default the Native SDK automatically sets this value for you, but in some - * cases it might be preferable to set these values yourself for each thread you - * manage. Ensure to disable the `SENTRY_THREAD_STACK_GUARANTEE_AUTO_INIT` CMake - * option when building the Native SDK to have full control over each threads - * stack guarantee. - * - * The input parameter specifies a size in bytes and should be a multiple of the - * page size. Returns `1` if the thread stack guarantee was set successfully and - * `0` otherwise. - * - * Note: when we auto-assign the stack guarantee we check against the thread's - * stack reserve (see `SENTRY_THREAD_STACK_GUARANTEE_FACTOR` in the - * `README.md`). This check is not applied when you call this function. - * Note: this function depends on the SDK being initialized when doing static - * builds or in any configuration on Xbox. - */ -SENTRY_EXPERIMENTAL_API int sentry_set_thread_stack_guarantee( - uint32_t stack_guarantee_in_bytes); -#endif - -/** - * Enables forwarding to the system crash reporter. Disabled by default. - * - * This setting only has an effect when using Crashpad on macOS. If enabled, - * Crashpad forwards crashes to the macOS system crash reporter. Depending - * on the crash, this may impact the crash time. Even if enabled, Crashpad - * may choose not to forward certain crashes. - */ -SENTRY_API void sentry_options_set_system_crash_reporter_enabled( - sentry_options_t *opts, int enabled); - -/** - * Enables a wait for the crash report upload to be finished before shutting - * down. This is disabled by default. - * - * This setting only has an effect when using the `crashpad` backend on Linux - * and Windows. - */ -SENTRY_API void sentry_options_set_crashpad_wait_for_upload( - sentry_options_t *opts, int wait_for_upload); - -/** - * Sets the maximum time (in milliseconds) to wait for the asynchronous - * tasks to end on shutdown, before attempting a forced termination. - */ -SENTRY_API void sentry_options_set_shutdown_timeout( - sentry_options_t *opts, uint64_t shutdown_timeout); - -/** - * Gets the maximum time (in milliseconds) to wait for the asynchronous tasks to - * end on shutdown, before attempting a forced termination. - */ -SENTRY_API uint64_t sentry_options_get_shutdown_timeout(sentry_options_t *opts); - -/** - * Sets a user-defined backend. - * - * Since creation and destruction of backends is not exposed in the API, this - * can only be used to set the backend to `NULL`, which disables the backend in - * the initialization. - */ -SENTRY_API void sentry_options_set_backend( - sentry_options_t *opts, sentry_backend_t *backend); - -/* -- Global/Scope APIs -- */ - -/** - * Initializes the Sentry SDK with the specified options. - * - * This takes ownership of the options. After the options have been set - * they cannot be modified any more. - * Depending on the configured transport and backend, this function might not be - * fully thread-safe. - * Returns 0 on success. - */ -SENTRY_API int sentry_init(sentry_options_t *options); - -/** - * Instructs the transport to flush its send queue. - * - * The `timeout` parameter is in milliseconds. - * - * Returns 0 on success, or a non-zero return value in case the timeout is hit. - * - * Note that this function will block the thread it was called from until the - * sentry background worker has finished its work or it timed out, whichever - * comes first. - */ -SENTRY_API int sentry_flush(uint64_t timeout); - -/** - * Shuts down the sentry client and forces transports to flush out. - * - * Returns 0 on success. - * - * Note that this does not uninstall any crash handler installed by our - * backends, which will still process crashes after `sentry_close()`, except - * when using `crashpad` on Linux or the `inproc` backend. - * - * Further note that this function will block the thread it was called from - * until the sentry background worker has finished its work or it timed out, - * whichever comes first. - */ -SENTRY_API int sentry_close(void); - -/** - * Shuts down the sentry client and forces transports to flush out. - * - * This is a **deprecated** alias for `sentry_close`. - * - * Returns 0 on success. - */ -SENTRY_API int sentry_shutdown(void); - -/** - * This will lazily load and cache a list of all the loaded libraries. - * - * Returns a new reference to an immutable, frozen list. - * The reference must be released with `sentry_value_decref`. - */ -SENTRY_EXPERIMENTAL_API sentry_value_t sentry_get_modules_list(void); - -/** - * Clears the internal module cache. - * - * For performance reasons, sentry will cache the list of loaded libraries when - * capturing events. This cache can get out-of-date when loading or unloading - * libraries at runtime. It is therefore recommended to call - * `sentry_clear_modulecache` when doing so, to make sure that the next call to - * `sentry_capture_event` will have an up-to-date module list. - */ -SENTRY_EXPERIMENTAL_API void sentry_clear_modulecache(void); - -/** - * Re-initializes the Sentry backend. - * - * This is needed if a third-party library overrides the previously installed - * signal handler. Calling this function can be potentially dangerous and should - * only be done when necessary. - * - * Returns 0 on success. - */ -SENTRY_EXPERIMENTAL_API int sentry_reinstall_backend(void); - -/** - * Gives user consent. - */ -SENTRY_API void sentry_user_consent_give(void); - -/** - * Revokes user consent. - */ -SENTRY_API void sentry_user_consent_revoke(void); - -/** - * Resets the user consent (back to unknown). - */ -SENTRY_API void sentry_user_consent_reset(void); - -/** - * Checks the current state of user consent. - */ -SENTRY_API sentry_user_consent_t sentry_user_consent_get(void); - -/** - * A sentry Scope. - * - * See https://develop.sentry.dev/sdk/telemetry/scopes/ - */ -struct sentry_scope_s; -typedef struct sentry_scope_s sentry_scope_t; - -/** - * Creates a local scope. - */ -SENTRY_API sentry_scope_t *sentry_local_scope_new(void); - -/** - * Sends a sentry event. - * - * If returns a nil UUID if the event being passed in is a transaction, and the - * transaction will not be sent nor consumed. `sentry_transaction_finish` should - * be used to send transactions. - */ -SENTRY_API sentry_uuid_t sentry_capture_event(sentry_value_t event); - -/** - * Sends a sentry event with a local scope. - * - * Takes ownership of `scope`. - */ -SENTRY_API sentry_uuid_t sentry_capture_event_with_scope( - sentry_value_t event, sentry_scope_t *scope); - -/** - * Allows capturing independently created minidumps. - * - * This generates a fatal error event, includes the scope and attachments. - * If a before-send hook doesn't drop the event, the minidump is attached - * and the event is sent. - * - * Returns a nil `UUID` if capturing the minidump failed and the event-id - * otherwise. Uploads can fail because capturing is asynchronous, so a non-nil - * `UUID` is not a delivery guarantee. However, if the minidump is successfully - * delivered, the ID is guaranteed to be the same as the event in the Sentry UI. - * - * Note: You don't need this function if you rely on Sentry to create the - * minidump. This is useful when you have a minidump captured through a - * different mechanism, and you want Sentry to ingest it. - */ -SENTRY_API sentry_uuid_t sentry_capture_minidump(const char *path); -SENTRY_API sentry_uuid_t sentry_capture_minidump_n( - const char *path, size_t path_len); - -/** - * Captures a system-native exception that you retrieve when you manually handle - * `POSIX` signals or `SEH` exceptions and want to keep using that handling - * instead of the top-level handlers in our backends. The exception is still - * processed as a sentry event inside the SDK, including applying scope metadata - * and invoking hooks. - * - * The passed in `sentry_ucontext_t` must be filled with the OS-specific - * exception data (as specified in the struct definition) that you retrieve - * from your handler. - * - * This is safe to be called from a crashing thread and may not return. - * - * Note: The `crashpad` client currently supports this only on Windows. `inproc` - * and `breakpad` supports it on all platforms (on macOS, the `uctx` - * argument is ignored when using the `breakpad` backend). - */ -SENTRY_EXPERIMENTAL_API void sentry_handle_exception( - const sentry_ucontext_t *uctx); - -/** - * Adds the breadcrumb to be sent in case of an event. - */ -SENTRY_API void sentry_add_breadcrumb(sentry_value_t breadcrumb); -SENTRY_API void sentry_scope_add_breadcrumb( - sentry_scope_t *scope, sentry_value_t breadcrumb); - -/** - * Sets the specified user. - */ -SENTRY_API void sentry_set_user(sentry_value_t user); -SENTRY_API void sentry_scope_set_user( - sentry_scope_t *scope, sentry_value_t user); - -/** - * Removes a user. - */ -SENTRY_API void sentry_remove_user(void); - -/** - * Sets a tag. - */ -SENTRY_API void sentry_set_tag(const char *key, const char *value); -SENTRY_API void sentry_set_tag_n( - const char *key, size_t key_len, const char *value, size_t value_len); -SENTRY_API void sentry_scope_set_tag( - sentry_scope_t *scope, const char *key, const char *value); -SENTRY_API void sentry_scope_set_tag_n(sentry_scope_t *scope, const char *key, - size_t key_len, const char *value, size_t value_len); - -/** - * Removes the tag with the specified key. - */ -SENTRY_API void sentry_remove_tag(const char *key); -SENTRY_API void sentry_remove_tag_n(const char *key, size_t key_len); - -/** - * Sets extra information. - */ -SENTRY_API void sentry_set_extra(const char *key, sentry_value_t value); -SENTRY_API void sentry_set_extra_n( - const char *key, size_t key_len, sentry_value_t value); -SENTRY_API void sentry_scope_set_extra( - sentry_scope_t *scope, const char *key, sentry_value_t value); -SENTRY_API void sentry_scope_set_extra_n(sentry_scope_t *scope, const char *key, - size_t key_len, sentry_value_t value); - -/** - * Removes the extra with the specified key. - */ -SENTRY_API void sentry_remove_extra(const char *key); -SENTRY_API void sentry_remove_extra_n(const char *key, size_t key_len); - -/** - * Sets a context object. - */ -SENTRY_API void sentry_set_context(const char *key, sentry_value_t value); -SENTRY_API void sentry_set_context_n( - const char *key, size_t key_len, sentry_value_t value); -SENTRY_API void sentry_scope_set_context( - sentry_scope_t *scope, const char *key, sentry_value_t value); -SENTRY_API void sentry_scope_set_context_n(sentry_scope_t *scope, - const char *key, size_t key_len, sentry_value_t value); - -/** - * Removes the context object with the specified key. - */ -SENTRY_API void sentry_remove_context(const char *key); -SENTRY_API void sentry_remove_context_n(const char *key, size_t key_len); - -/** - * Sets the event fingerprint. - * - * This accepts a variable number of arguments, and needs to be terminated by a - * trailing `NULL`. - */ -SENTRY_API void sentry_set_fingerprint(const char *fingerprint, ...); -SENTRY_API void sentry_set_fingerprint_n( - const char *fingerprint, size_t fingerprint_len, ...); -SENTRY_API void sentry_scope_set_fingerprint( - sentry_scope_t *scope, const char *fingerprint, ...); -SENTRY_API void sentry_scope_set_fingerprint_n(sentry_scope_t *scope, - const char *fingerprint, size_t fingerprint_len, ...); - -/** - * Sets the event fingerprints. - * - * This accepts a list of fingerprints created with `sentry_value_new_list`. - */ -SENTRY_API void sentry_scope_set_fingerprints( - sentry_scope_t *scope, sentry_value_t fingerprints); - -/** - * Removes the fingerprint. - */ -SENTRY_API void sentry_remove_fingerprint(void); - -/** - * Set the trace. The primary use for this is to allow other SDKs to propagate - * their trace context to connect events on all layers - */ -SENTRY_API void sentry_set_trace( - const char *trace_id, const char *parent_span_id); -SENTRY_API void sentry_set_trace_n(const char *trace_id, size_t trace_id_len, - const char *parent_span_id, size_t parent_span_id_len); - -/** - * Sets the transaction. - */ -SENTRY_API void sentry_set_transaction(const char *transaction); -SENTRY_API void sentry_set_transaction_n( - const char *transaction, size_t transaction_len); - -/** - * Sets the event level. - */ -SENTRY_API void sentry_set_level(sentry_level_t level); -SENTRY_API void sentry_scope_set_level( - sentry_scope_t *scope, sentry_level_t level); - -/** - * Sets the maximum number of spans that can be attached to a - * transaction. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_max_spans( - sentry_options_t *opts, size_t max_spans); - -/** - * Gets the maximum number of spans that can be attached to a - * transaction. - */ -SENTRY_EXPERIMENTAL_API size_t sentry_options_get_max_spans( - sentry_options_t *opts); - -/** - * Sets the sample rate for transactions. Should be a double between - * `0.0` and `1.0`. Transactions will be randomly discarded during - * `sentry_transaction_finish` when the sample rate is < 1.0. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_traces_sample_rate( - sentry_options_t *opts, double sample_rate); - -/** - * Returns the sample rate for transactions. - */ -SENTRY_EXPERIMENTAL_API double sentry_options_get_traces_sample_rate( - sentry_options_t *opts); - -/** - * A sentry Transaction Context. - * - * See Transaction Interface under - * https://develop.sentry.dev/sdk/performance/#new-span-and-transaction-classes - */ -struct sentry_transaction_context_s; -typedef struct sentry_transaction_context_s sentry_transaction_context_t; -typedef double (*sentry_traces_sampler_function)( - const sentry_transaction_context_t *transaction_ctx, - sentry_value_t custom_sampling_ctx, const int *parent_sampled); - -/** - * Sets the traces sampler callback. Should be a function that returns a double - * and takes in a sentry_transaction_context_t pointer, a sentry_value_t for - * a custom sampling context and an int pointer for the parent sampled flag. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_traces_sampler( - sentry_options_t *opts, sentry_traces_sampler_function callback); - -#ifdef SENTRY_PLATFORM_LINUX - -/** - * Returns the currently set strategy for the handler. - * - * This option does only work for the `inproc` backend on `Linux` and `Android`. - * - * The main use-case is when the Native SDK is used in the context of the - * CLR/Mono runtimes which convert some POSIX signals into managed-code - * exceptions and discontinue the signal chain. - * - * If this happens and we invoke the previous handler at the end (i.e., after - * our handler processed the signal, which is the default strategy) we will end - * up sending a native crash in addition to the managed code exception (which - * will either generate another crash-event if uncaught or could be handled in - * the managed code and neither terminate the application nor create a crash - * event). To correctly process the signals of CLR/Mono applications, we must - * invoke the runtime handler at the start of our handler. - */ -SENTRY_EXPERIMENTAL_API sentry_handler_strategy_t -sentry_options_get_handler_strategy(const sentry_options_t *opts); - -/** - * Sets the handler strategy. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_handler_strategy( - sentry_options_t *opts, sentry_handler_strategy_t handler_strategy); - -#endif // SENTRY_PLATFORM_LINUX - -/** - * A sentry Attachment. - * - * See https://develop.sentry.dev/sdk/data-model/envelope-items/#attachment - */ -struct sentry_attachment_s; -typedef struct sentry_attachment_s sentry_attachment_t; - -/** - * Attaches a file to be sent along with events. - * - * `path` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use `sentry_attach_filew` or - * `sentry_scope_attach_filew` instead. - * - * The same file cannot be attached multiple times i.e. `path` must be unique. - * Calling this function multiple times with the same `path` is safe, but - * duplicate attachments with equal paths will not be added. - * - * The returned `sentry_attachment_t` is owned by the SDK and will remain valid - * until the attachment is removed with `sentry_remove_attachment` or - * `sentry_close` is called. - * - * See the NOTE on attachments above for restrictions of this API. - */ -SENTRY_API sentry_attachment_t *sentry_attach_file(const char *path); -SENTRY_API sentry_attachment_t *sentry_attach_file_n( - const char *path, size_t path_len); -SENTRY_API sentry_attachment_t *sentry_scope_attach_file( - sentry_scope_t *scope, const char *path); -SENTRY_API sentry_attachment_t *sentry_scope_attach_file_n( - sentry_scope_t *scope, const char *path, size_t path_len); - -/** - * Attaches bytes to be sent along with events. - * - * `filename` is assumed to be in platform-specific filesystem path encoding. - * API Users on windows are encouraged to use `sentry_attach_bytesw` or - * `sentry_scope_attach_bytesw` instead. - * - * `filename` is used to identify the attachment in the Sentry Web UI. It is - * recommended to use unique filenames to make attachments easier to - * differentiate. However, neither `filename` nor `buf` is used to reject - * duplicate attachments. - * - * NOTE: When using the `crashpad` backend, it writes byte attachments to disk - * into a flat directory structure. If multiple buffers are attached with the - * same `filename`, it will internally ensure unique filenames for attachments - * by appending a unique suffix to the filename. Therefore, attachments may show - * up with altered names in the Sentry Web UI. - * - * The returned `sentry_attachment_t` is owned by the SDK and will remain valid - * until the attachment is removed with `sentry_remove_attachment` or - * `sentry_close` is called. - * - * See the NOTE on attachments above for restrictions of this API. - */ -SENTRY_API sentry_attachment_t *sentry_attach_bytes( - const char *buf, size_t buf_len, const char *filename); -SENTRY_API sentry_attachment_t *sentry_attach_bytes_n( - const char *buf, size_t buf_len, const char *filename, size_t filename_len); -SENTRY_API sentry_attachment_t *sentry_scope_attach_bytes(sentry_scope_t *scope, - const char *buf, size_t buf_len, const char *filename); -SENTRY_API sentry_attachment_t *sentry_scope_attach_bytes_n( - sentry_scope_t *scope, const char *buf, size_t buf_len, - const char *filename, size_t filename_len); - -/** - * Removes and frees a previously added attachment. - * - * See the NOTE on attachments above for restrictions of this API. - */ -SENTRY_API void sentry_remove_attachment(sentry_attachment_t *attachment); - -#ifdef SENTRY_PLATFORM_WINDOWS -/** - * Wide char versions of `sentry_attach_file` and `sentry_scope_attach_file`. - */ -SENTRY_API sentry_attachment_t *sentry_attach_filew(const wchar_t *path); -SENTRY_API sentry_attachment_t *sentry_attach_filew_n( - const wchar_t *path, size_t path_len); -SENTRY_API sentry_attachment_t *sentry_scope_attach_filew( - sentry_scope_t *scope, const wchar_t *path); -SENTRY_API sentry_attachment_t *sentry_scope_attach_filew_n( - sentry_scope_t *scope, const wchar_t *path, size_t path_len); - -/** - * Wide char versions of `sentry_attach_bytes` and `sentry_scope_attach_bytes`. - */ -SENTRY_API sentry_attachment_t *sentry_attach_bytesw( - const char *buf, size_t buf_len, const wchar_t *filename); -SENTRY_API sentry_attachment_t *sentry_attach_bytesw_n(const char *buf, - size_t buf_len, const wchar_t *filename, size_t filename_len); -SENTRY_API sentry_attachment_t *sentry_scope_attach_bytesw( - sentry_scope_t *scope, const char *buf, size_t buf_len, - const wchar_t *filename); -SENTRY_API sentry_attachment_t *sentry_scope_attach_bytesw_n( - sentry_scope_t *scope, const char *buf, size_t buf_len, - const wchar_t *filename, size_t filename_len); -#endif - -/** - * Sets the content type of an attachment. - */ -SENTRY_API void sentry_attachment_set_content_type( - sentry_attachment_t *attachment, const char *content_type); -SENTRY_API void sentry_attachment_set_content_type_n( - sentry_attachment_t *attachment, const char *content_type, - size_t content_type_len); - -/** - * Sets the filename of an attachment. - */ -SENTRY_API void sentry_attachment_set_filename( - sentry_attachment_t *attachment, const char *filename); -SENTRY_API void sentry_attachment_set_filename_n( - sentry_attachment_t *attachment, const char *filename, size_t filename_len); - -#ifdef SENTRY_PLATFORM_WINDOWS -/** - * Wide char version of `sentry_attachment_set_filename`. - */ -SENTRY_API void sentry_attachment_set_filenamew( - sentry_attachment_t *attachment, const wchar_t *filename); -SENTRY_API void sentry_attachment_set_filenamew_n( - sentry_attachment_t *attachment, const wchar_t *filename, - size_t filename_len); -#endif - -/* -- Session APIs -- */ - -typedef enum { - SENTRY_SESSION_STATUS_OK, - SENTRY_SESSION_STATUS_CRASHED, - SENTRY_SESSION_STATUS_ABNORMAL, - SENTRY_SESSION_STATUS_EXITED, -} sentry_session_status_t; - -/** - * Starts a new session. - */ -SENTRY_API void sentry_start_session(void); - -/** - * Ends a session. - */ -SENTRY_API void sentry_end_session(void); - -/** - * Ends a session with an explicit `status` code. - */ -SENTRY_EXPERIMENTAL_API void sentry_end_session_with_status( - sentry_session_status_t status); - -/* -- Performance Monitoring/Tracing APIs -- */ - -/** - * A sentry Transaction. - * - * See https://develop.sentry.dev/sdk/event-payloads/transaction/ - */ -struct sentry_transaction_s; -typedef struct sentry_transaction_s sentry_transaction_t; - -/** - * Type of the `before_transaction` callback. - * - * The callback takes ownership of the `transaction`, and should usually return - * that same transaction. In case the transaction should be discarded, the - * callback needs to call `sentry_value_decref` on the provided transaction, and - * return a `sentry_value_new_null()` instead. - */ -typedef sentry_value_t (*sentry_transaction_function_t)( - sentry_value_t transaction, void *user_data); - -/** - * Sets the `before_transaction` callback. - */ -SENTRY_EXPERIMENTAL_API void sentry_options_set_before_transaction( - sentry_options_t *opts, sentry_transaction_function_t func, void *data); - -/** - * A sentry Span. - * - * See https://develop.sentry.dev/sdk/event-payloads/span/ - */ -struct sentry_span_s; -typedef struct sentry_span_s sentry_span_t; - -/** - * Constructs a new Transaction Context. The returned value needs to be passed - * into `sentry_transaction_start` in order to be recorded and sent to sentry. - * - * See - * https://docs.sentry.io/platforms/native/enriching-events/transaction-name/ - * for an explanation of a Transaction's `name`, and - * https://develop.sentry.dev/sdk/performance/span-operations/ for conventions - * around an `operation`'s value. - * - * Also see https://develop.sentry.dev/sdk/event-payloads/transaction/#anatomy - * for an explanation of `operation`, in addition to other properties and - * actions that can be performed on a Transaction. - * - * The returned value is not thread-safe. Users are expected to ensure that - * appropriate locking mechanisms are implemented over the Transaction Context - * if it needs to be mutated across threads. Methods operating on the - * Transaction Context will mention what kind of expectations they carry if they - * need to mutate or access the object in a thread-safe way. - */ -SENTRY_EXPERIMENTAL_API sentry_transaction_context_t * -sentry_transaction_context_new(const char *name, const char *operation); -SENTRY_EXPERIMENTAL_API sentry_transaction_context_t * -sentry_transaction_context_new_n(const char *name, size_t name_len, - const char *operation, size_t operation_len); - -/** - * Sets the `name` on a Transaction Context, which will be used in the - * Transaction constructed off of the context. - * - * The Transaction Context should not be mutated by other functions while - * setting a name on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_name( - sentry_transaction_context_t *tx_ctx, const char *name); -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_name_n( - sentry_transaction_context_t *tx_ctx, const char *name, size_t name_len); -/** - * Gets the `name` of a Transaction Context. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_transaction_context_get_name( - const sentry_transaction_context_t *tx_ctx); - -/** - * Sets the `operation` on a Transaction Context, which will be used in the - * Transaction constructed off of the context - * - * See https://develop.sentry.dev/sdk/performance/span-operations/ for - * conventions on `operation`s. - * - * The Transaction Context should not be mutated by other functions while - * setting an operation on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_operation( - sentry_transaction_context_t *tx_ctx, const char *operation); -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_operation_n( - sentry_transaction_context_t *tx_ctx, const char *operation, - size_t operation_len); -/** - * Gets the `operation` of a Transaction Context. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_transaction_context_get_operation( - const sentry_transaction_context_t *tx_ctx); - -/** - * Sets the `sampled` field on a Transaction Context, which will be used in the - * Transaction constructed off of the context. - * - * When passed any value above 0, the Transaction will bypass all sampling - * options and always be sent to sentry. If passed 0, this Transaction and its - * child spans will never be sent to sentry. - * - * The Transaction Context should not be mutated by other functions while - * setting `sampled` on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_sampled( - sentry_transaction_context_t *tx_ctx, int sampled); - -/** - * Removes the `sampled` field on a Transaction Context, which will be used in - * the Transaction constructed off of the context. - * - * The Transaction will use the sampling rate as defined in `sentry_options`. - * - * The Transaction Context should not be mutated by other functions while - * removing `sampled`. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_remove_sampled( - sentry_transaction_context_t *tx_ctx); - -/** - * Update the Transaction Context with the given HTTP header key/value pair. - * - * This is used to propagate distributed tracing metadata from upstream - * services. Therefore, the headers of incoming requests should be fed into this - * function so that sentry is able to continue a trace that was started by an - * upstream service. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_update_from_header( - sentry_transaction_context_t *tx_ctx, const char *key, const char *value); -SENTRY_EXPERIMENTAL_API void sentry_transaction_context_update_from_header_n( - sentry_transaction_context_t *tx_ctx, const char *key, size_t key_len, - const char *value, size_t value_len); - -/** - * Starts a new Transaction based on the provided context, restored from an - * external integration (i.e. a span from a different SDK) or manually - * constructed by a user. - * - * The second parameter is a custom Sampling Context to be used with a Traces - * Sampler to allow you to make a more informed sampling decision. - * - * Returns a Transaction, which is expected to be manually managed by the - * caller. Manual management involves ensuring that `sentry_transaction_finish` - * is invoked for the Transaction, and that the caller manually starts and - * finishes any child Spans as needed on the Transaction. - * - * Not invoking `sentry_transaction_finish` with the returned Transaction means - * it will be discarded, and will not be sent to sentry. - * - * To ensure that any Events or Message Events are associated with this - * Transaction while it is active, invoke and pass in the Transaction returned - * by this function to `sentry_set_transaction_object`. Further documentation on - * this can be found in `sentry_set_transaction_object`'s docstring. - * - * Takes ownership of `transaction_context`. A Transaction Context cannot be - * modified or re-used after it is used to start a Transaction. - * - * Takes ownership of `custom_sampling_ctx`. A Sampling Context cannot be - * modified or re-used after it is used to start a Transaction. - * - * The returned value is not thread-safe. Users are expected to ensure that - * appropriate locking mechanisms are implemented over the Transaction if it - * needs to be mutated across threads. Methods operating on the Transaction will - * mention what kind of expectations they carry if they need to mutate or access - * the object in a thread-safe way. - */ -SENTRY_EXPERIMENTAL_API sentry_transaction_t *sentry_transaction_start( - sentry_transaction_context_t *tx_ctx, sentry_value_t custom_sampling_ctx); -/** - * Also starts a transaction like the regular `sentry_transaction_start` - * function, but has an additional timestamp parameter to let the user provide - * explicit timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API sentry_transaction_t *sentry_transaction_start_ts( - sentry_transaction_context_t *tx_ctx, sentry_value_t custom_sampling_ctx, - uint64_t timestamp); - -/** - * Finishes and sends a Transaction to sentry. The event ID of the Transaction - * will be returned if this was successful; A nil UUID will be returned - * otherwise. - * - * Always takes ownership of `transaction`, regardless of whether the operation - * was successful or not. A Transaction cannot be modified or re-used after it - * is finished. - */ -SENTRY_EXPERIMENTAL_API sentry_uuid_t sentry_transaction_finish( - sentry_transaction_t *tx); -/** - * Also finishes a transaction like the regular `sentry_transaction_finish` - * function, but has an additional timestamp parameter to let the user provide - * explicit timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API sentry_uuid_t sentry_transaction_finish_ts( - sentry_transaction_t *tx, uint64_t timestamp); - -/** - * Sets the Transaction so any Events sent while the Transaction - * is active will be associated with the Transaction. - * - * If the Transaction being passed in is unsampled, it will still be associated - * with any new Events. This will lead to some Events pointing to orphan or - * missing traces in sentry, see - * https://docs.sentry.io/product/sentry-basics/tracing/trace-view/#orphan-traces-and-broken-subtraces - * - * This increases the number of references pointing to the Transaction. Invoke - * `sentry_transaction_finish` to remove the Transaction set by this function as - * well as its reference by passing in the same Transaction as the one passed - * into this function. - */ -SENTRY_EXPERIMENTAL_API void sentry_set_transaction_object( - sentry_transaction_t *tx); - -/** - * Sets the Span so any Events sent while the Span - * is active will be associated with the Span. - * - * This increases the number of references pointing to the Span. Invoke - * `sentry_span_finish` to remove the Span set by this function as well - * as its reference by passing in the same Span as the one passed into - * this function. - */ -SENTRY_EXPERIMENTAL_API void sentry_set_span(sentry_span_t *span); - -/** - * Starts a new Span. - * - * The return value of `sentry_transaction_start` should be passed in as - * `parent`. This value can't be null, since we don't allow for orphan spans. - * - * Both `operation` and `description` can be null, but it is recommended to - * supply the former. See - * https://develop.sentry.dev/sdk/performance/span-operations/ for conventions - * around operations. - * - * See https://develop.sentry.dev/sdk/event-payloads/span/ for a description of - * the created Span's properties and expectations for `operation` and - * `description`. - * - * Returns a value that should be passed into `sentry_span_finish`. Not - * finishing the Span means it will be discarded, and will not be sent to - * sentry. `sentry_value_null` will be returned if the child Span could not be - * created. - * - * To ensure that any Events or Message Events are associated with this - * Span while it is active, invoke and pass in the Span returned - * by this function to `sentry_set_span`. Further documentation on this can be - * found in `sentry_set_span`'s docstring. - * - * This increases the number of references pointing to the Transaction. - * - * The returned value is not thread-safe. Users are expected to ensure that - * appropriate locking mechanisms are implemented over the Span if it needs - * to be mutated across threads. Methods operating on the Span will mention what - * kind of expectations they carry if they need to mutate or access the object - * in a thread-safe way. - */ -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child( - sentry_transaction_t *parent, const char *operation, - const char *description); -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child_n( - sentry_transaction_t *parent, const char *operation, size_t operation_len, - const char *description, size_t description_len); -/** - * Also starts a span like the regular `sentry_transaction_start_child_ts` - * functions, but has an additional timestamp parameter to let the user provide - * explicit timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child_ts( - sentry_transaction_t *parent, const char *operation, - const char *description, uint64_t timestamp); -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child_ts_n( - sentry_transaction_t *parent, const char *operation, size_t operation_len, - const char *description, size_t description_len, uint64_t timestamp); - -/** - * Starts a new Span. - * - * The return value of either `sentry_transaction_start_child` or - * `sentry_span_start_child` should be passed in as `parent`. This value can't - * be null, since we don't allow for orphan spans. - * - * Both `operation` and `description` can be null, but it is recommended to - * supply the former. See - * https://develop.sentry.dev/sdk/performance/span-operations/ for conventions - * around operations. - * - * See https://develop.sentry.dev/sdk/event-payloads/span/ for a description of - * the created Span's properties and expectations for `operation` and - * `description`. - * - * Returns a value that should be passed into `sentry_span_finish`. Not - * finishing the Span means it will be discarded, and will not be sent to - * sentry. `sentry_value_null` will be returned if the child Span could not be - * created. - * - * To ensure that any Events or Message Events are associated with this - * Span while it is active, invoke and pass in the Span returned - * by this function to `sentry_set_span`. Further documentation on this can be - * found in `sentry_set_span`'s docstring. - * - * The returned value is not thread-safe. Users are expected to ensure that - * appropriate locking mechanisms are implemented over the Span if it needs - * to be mutated across threads. Methods operating on the Span will mention what - * kind of expectations they carry if they need to mutate or access the object - * in a thread-safe way. - */ -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child( - sentry_span_t *parent, const char *operation, const char *description); -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child_n( - sentry_span_t *parent, const char *operation, size_t operation_len, - const char *description, size_t description_len); -/** - * Also starts a span like the regular `sentry_span_start_child_ts` functions, - * but has an additional timestamp parameter to let the user provide explicit - * timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child_ts( - sentry_span_t *parent, const char *operation, const char *description, - uint64_t timestamp); -SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child_ts_n( - sentry_span_t *parent, const char *operation, size_t operation_len, - const char *description, size_t description_len, uint64_t timestamp); - -/** - * Finishes a Span. - * - * This takes ownership of `span`. A Span cannot be modified or re-used after it - * is finished. - * - * This will mutate the `span`'s containing Transaction, so the containing - * Transaction should also not be mutated by other functions when finishing a - * span. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_finish(sentry_span_t *span); -/** - * Also finishes a span like the regular `sentry_span_finish` function, but has - * an additional timestamp parameter to let the user provide explicit timings. - * - * The timestamp should be provided in microseconds since the Unix epoch. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_finish_ts( - sentry_span_t *span, uint64_t timestamp); - -/** - * Sets a tag on a Transaction to the given string value. - * - * Tags longer than 200 bytes will be truncated. - * - * The Transaction should not be mutated by other functions while a tag is being - * set on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_tag( - sentry_transaction_t *transaction, const char *tag, const char *value); -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_tag_n( - sentry_transaction_t *transaction, const char *tag, size_t tag_len, - const char *value, size_t value_len); - -/** - * Removes a tag from a Transaction. - * - * The Transaction should not be mutated by other functions while a tag is being - * removed from it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_tag( - sentry_transaction_t *transaction, const char *tag); -SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_tag_n( - sentry_transaction_t *transaction, const char *tag, size_t tag_len); - -/** - * Sets the given key in a Transaction's "data" section to the given value. - * - * The Transaction should not be mutated by other functions while data is being - * set on it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_data( - sentry_transaction_t *transaction, const char *key, sentry_value_t value); -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_data_n( - sentry_transaction_t *transaction, const char *key, size_t key_len, - sentry_value_t value); - -/** - * Removes a key from a Transaction's "data" section. - * - * The Transaction should not be mutated by other functions while data is being - * removed from it. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_data( - sentry_transaction_t *transaction, const char *key); -SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_data_n( - sentry_transaction_t *transaction, const char *key, size_t key_len); - -/** - * Sets a tag on a Span to the given string value. - * - * Tags longer than 200 bytes will be truncated. - * - * The Span should not be mutated by other functions while a tag is being set on - * it. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_set_tag( - sentry_span_t *span, const char *tag, const char *value); -SENTRY_EXPERIMENTAL_API void sentry_span_set_tag_n(sentry_span_t *span, - const char *tag, size_t tag_len, const char *value, size_t value_len); - -/** - * Removes a tag from a Span. - * - * The Span should not be mutated by other functions while a tag is being - * removed from it. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_remove_tag( - sentry_span_t *span, const char *tag); -SENTRY_EXPERIMENTAL_API void sentry_span_remove_tag_n( - sentry_span_t *span, const char *tag, size_t tag_len); - -/** - * Sets the given key in a Span's "data" section to the given value. - * - * The Span should not be mutated by other functions while data is being set on - * it. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_set_data( - sentry_span_t *span, const char *key, sentry_value_t value); -SENTRY_EXPERIMENTAL_API void sentry_span_set_data_n( - sentry_span_t *span, const char *key, size_t key_len, sentry_value_t value); - -/** - * Removes a key from a Span's "data" section. - * - * The Span should not be mutated by other functions while data is being removed - * from it. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_remove_data( - sentry_span_t *span, const char *key); -SENTRY_EXPERIMENTAL_API void sentry_span_remove_data_n( - sentry_span_t *span, const char *key, size_t key_len); - -/** - * Sets a Transaction's name. - * - * The Transaction should not be mutated by other functions while setting its - * name. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_name( - sentry_transaction_t *transaction, const char *name); -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_name_n( - sentry_transaction_t *transaction, const char *name, size_t name_len); - -/** - * Creates a new User Feedback with a specific name, email and comments. - * - * See https://develop.sentry.dev/sdk/envelopes/#user-feedback - * - * User Feedback has to be associated with a specific event that has been - * sent to Sentry earlier. - */ -SENTRY_API sentry_value_t sentry_value_new_user_feedback( - const sentry_uuid_t *uuid, const char *name, const char *email, - const char *comments); -SENTRY_API sentry_value_t sentry_value_new_user_feedback_n( - const sentry_uuid_t *uuid, const char *name, size_t name_len, - const char *email, size_t email_len, const char *comments, - size_t comments_len); - -/** - * Captures a manually created User Feedback and sends it to Sentry. - */ -SENTRY_API void sentry_capture_user_feedback(sentry_value_t user_feedback); - -/** - * The status of a Span or Transaction. - * - * See https://develop.sentry.dev/sdk/event-payloads/span/ for documentation. - */ -typedef enum { - // The operation completed successfully. - // HTTP status 100..299 + successful redirects from the 3xx range. - SENTRY_SPAN_STATUS_OK, - // The operation was cancelled (typically by the user). - SENTRY_SPAN_STATUS_CANCELLED, - // Unknown. Any non-standard HTTP status code. - // "We do not know whether the transaction failed or succeeded." - SENTRY_SPAN_STATUS_UNKNOWN, - // Client specified an invalid argument. 4xx. - // Note that this differs from FailedPrecondition. InvalidArgument - // indicates arguments that are problematic regardless of the - // state of the system. - SENTRY_SPAN_STATUS_INVALID_ARGUMENT, - // Deadline expired before operation could complete. - // For operations that change the state of the system, this error may be - // returned even if the operation has been completed successfully. - // HTTP redirect loops and 504 Gateway Timeout. - SENTRY_SPAN_STATUS_DEADLINE_EXCEEDED, - // 404 Not Found. Some requested entity (file or directory) was not found. - SENTRY_SPAN_STATUS_NOT_FOUND, - // Already exists (409) - // Some entity that we attempted to create already exists. - SENTRY_SPAN_STATUS_ALREADY_EXISTS, - // 403 Forbidden - // The caller does not have permission to execute the specified operation. - SENTRY_SPAN_STATUS_PERMISSION_DENIED, - // 429 Too Many Requests - // Some resource has been exhausted, perhaps a per-user quota or perhaps - // the entire file system is out of space. - SENTRY_SPAN_STATUS_RESOURCE_EXHAUSTED, - // Operation was rejected because the system is not in a state required for - // the operation's execution. - SENTRY_SPAN_STATUS_FAILED_PRECONDITION, - // The operation was aborted, typically due to a concurrency issue. - SENTRY_SPAN_STATUS_ABORTED, - // Operation was attempted past the valid range. - SENTRY_SPAN_STATUS_OUT_OF_RANGE, - // 501 Not Implemented - // Operation is not implemented or not enabled. - SENTRY_SPAN_STATUS_UNIMPLEMENTED, - // Other/generic 5xx - SENTRY_SPAN_STATUS_INTERNAL_ERROR, - // 503 Service Unavailable - SENTRY_SPAN_STATUS_UNAVAILABLE, - // Unrecoverable data loss or corruption - SENTRY_SPAN_STATUS_DATA_LOSS, - // 401 Unauthorized (actually does mean unauthenticated according to RFC - // 7235) - // Prefer PermissionDenied if a user is logged in. - SENTRY_SPAN_STATUS_UNAUTHENTICATED, -} sentry_span_status_t; - -/** - * Sets a Span's status. - * - * The Span should not be mutated by other functions while setting its status. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_set_status( - sentry_span_t *span, sentry_span_status_t status); - -/** - * Sets a Transaction's status. - * - * The Transaction should not be mutated by other functions while setting its - * status. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_set_status( - sentry_transaction_t *tx, sentry_span_status_t status); - -/** - * Type of the `iter_headers` callback. - * - * The callback is being called with HTTP header key/value pairs. - * These headers can be attached to outgoing HTTP requests to propagate - * distributed tracing metadata to downstream services. - * - */ -typedef void (*sentry_iter_headers_function_t)( - const char *key, const char *value, void *userdata); - -/** - * Iterates the distributed tracing HTTP headers for the given span. - */ -SENTRY_EXPERIMENTAL_API void sentry_span_iter_headers(sentry_span_t *span, - sentry_iter_headers_function_t callback, void *userdata); - -/** - * Iterates the distributed tracing HTTP headers for the given transaction. - */ -SENTRY_EXPERIMENTAL_API void sentry_transaction_iter_headers( - sentry_transaction_t *tx, sentry_iter_headers_function_t callback, - void *userdata); - -/** - * Returns whether the application has crashed on the last run. - * - * Notes: - * * The underlying value is set by sentry_init() - it must be called first. - * * Call sentry_clear_crashed_last_run() to reset for the next app run. - * - * Possible return values: - * 1 = the last run was a crash - * 0 = no crash recognized - * -1 = sentry_init() hasn't been called yet - */ -SENTRY_EXPERIMENTAL_API int sentry_get_crashed_last_run(void); - -/** - * Clear the status of the "crashed-last-run". You should explicitly call - * this after sentry_init() if you're using sentry_get_crashed_last_run(). - * Otherwise, the same information is reported on any subsequent runs. - * - * Notes: - * * This doesn't change the value of sentry_get_crashed_last_run() yet. - * However, if sentry_init() is called again, the value will change. - * * This may only be called after sentry_init() and before sentry_close(). - * - * Returns 0 on success, 1 on error. - */ -SENTRY_EXPERIMENTAL_API int sentry_clear_crashed_last_run(void); - -/** - * Sentry SDK version. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_sdk_version(void); - -/** - * Sentry SDK name set during build time. - * Deprecated: Please use sentry_options_get_sdk_name instead. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_sdk_name(void); - -/** - * Sentry SDK User-Agent set during build time. - * Deprecated: Please use sentry_options_get_user_agent instead. - */ -SENTRY_EXPERIMENTAL_API const char *sentry_sdk_user_agent(void); - -#ifdef __cplusplus -} -#endif -#endif +/** + * sentry-native + * + * sentry-native is a C client to send events to native from + * C and C++ applications. It can work together with breakpad/crashpad + * but also send events on its own. + * + * NOTE on encodings: + * + * Sentry will assume an encoding of UTF-8 for all string data that is captured + * and being sent to sentry as an Event. + * All the functions that are dealing with *paths* will assume an OS-specific + * encoding, typically ANSI on Windows, UTF-8 macOS, and the locale encoding on + * Linux; and they provide wchar-compatible alternatives on Windows which are + * preferred. + * + * NOTE on attachments: + * + * Attachments are read lazily at the time of `sentry_capture_event`, + * `sentry_capture_event_with_scope`, or at time of a hard crash. Relative + * attachment paths will be resolved according to the current working directory + * at the time of envelope creation. When adding and removing attachments, they + * are matched according to their given `path`. No normalization is performed. + * When using the `crashpad` backend on macOS, the list of attachments that will + * be added at the time of a hard crash will be frozen at the time of + * `sentry_init`, and later modifications will not be reflected. + */ + +#ifndef SENTRY_H_INCLUDED +#define SENTRY_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +/* common platform detection */ +#ifdef _WIN32 +# define SENTRY_PLATFORM_WINDOWS +# ifdef _GAMING_XBOX +# define SENTRY_PLATFORM_XBOX +# endif +#elif defined(__APPLE__) +# include +# if defined(TARGET_OS_OSX) && TARGET_OS_OSX +# define SENTRY_PLATFORM_MACOS +# elif defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE +# define SENTRY_PLATFORM_IOS +# endif +# define SENTRY_PLATFORM_DARWIN +# define SENTRY_PLATFORM_UNIX +#elif defined(__ANDROID__) +# define SENTRY_PLATFORM_ANDROID +# define SENTRY_PLATFORM_LINUX +# define SENTRY_PLATFORM_UNIX +#elif defined(__PROSPERO__) +# define SENTRY_PLATFORM_PS +# define SENTRY_PLATFORM_UNIX +#elif defined(__linux) || defined(__linux__) +# define SENTRY_PLATFORM_LINUX +# define SENTRY_PLATFORM_UNIX +#elif defined(_AIX) +/* IBM i PASE is also counted as AIX */ +# define SENTRY_PLATFORM_AIX +# define SENTRY_PLATFORM_UNIX +#elif defined(__NX__) +# define SENTRY_PLATFORM_NX +#else +# error unsupported platform +#endif + +/* SDK Version */ +#ifndef SENTRY_SDK_NAME +# if defined(SENTRY_PLATFORM_ANDROID) +# define SENTRY_SDK_NAME "sentry.native.android" +# elif defined(SENTRY_PLATFORM_XBOX) +# define SENTRY_SDK_NAME "sentry.native.xbox" +# else +# define SENTRY_SDK_NAME "sentry.native" +# endif +#endif +#define SENTRY_SDK_VERSION "0.10.1" +#define SENTRY_SDK_USER_AGENT SENTRY_SDK_NAME "/" SENTRY_SDK_VERSION + +/* marks a function as part of the sentry API */ +#ifndef SENTRY_API +# ifdef _WIN32 +# if defined(SENTRY_BUILD_SHARED) /* build dll */ +# define SENTRY_API __declspec(dllexport) +# elif !defined(SENTRY_BUILD_STATIC) /* use dll */ +# define SENTRY_API __declspec(dllimport) +# else /* static library */ +# define SENTRY_API +# endif +# else +# if __GNUC__ >= 4 +# define SENTRY_API __attribute__((visibility("default"))) +# else +# define SENTRY_API +# endif +# endif +#endif + +#ifdef __has_attribute +# if __has_attribute(deprecated) +# define SENTRY_DEPRECATED(msg) __attribute__((deprecated(msg))) +# endif +#endif +#ifndef SENTRY_DEPRECATED +# if defined(__GNUC__) \ + && (__GNUC__ > 4 \ + || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) /* GCC 4.5 */ +# define SENTRY_DEPRECATED(msg) __attribute__((deprecated(msg))) +# elif defined(__clang__) && __clang__major__ >= 3 /* Clang 3.0 */ +# define SENTRY_DEPRECATED(msg) __attribute__((deprecated(msg))) +# elif defined(_MSC_VER) && _MSC_VER >= 1400 /* VS 2005 (8.0) */ +# define SENTRY_DEPRECATED(msg) __declspec(deprecated(msg)) +# else +# define SENTRY_DEPRECATED(msg) +# endif +#endif + +#if defined(__GNUC__) || defined(__clang__) +# define SENTRY_SUPPRESS_DEPRECATED \ + _Pragma("GCC diagnostic push"); \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +# define SENTRY_RESTORE_DEPRECATED _Pragma("GCC diagnostic pop") +#elif defined(_MSC_VER) +# define SENTRY_SUPPRESS_DEPRECATED \ + __pragma(warning(push)); \ + __pragma(warning(disable : 4996)) +# define SENTRY_RESTORE_DEPRECATED __pragma(warning(pop)) +#else +# define SENTRY_SUPPRESS_DEPRECATED +# define SENTRY_RESTORE_DEPRECATED +#endif + +/* marks a function as experimental api */ +#ifndef SENTRY_EXPERIMENTAL_API +# define SENTRY_EXPERIMENTAL_API SENTRY_API +#endif + +#include +#include +#include + +/* context type dependencies */ +#ifdef _WIN32 +# include +#elif defined(SENTRY_PLATFORM_PS) +# include +#else +# include +#endif + +/** + * The library internally uses the system malloc and free functions to manage + * memory. It does not use realloc. The reason for this is that on unix + * platforms we fall back to a simplistic page allocator once we have + * encountered a SIGSEGV or other terminating signal as malloc is no longer + * safe to use. Since we cannot portably reallocate allocations made on the + * pre-existing allocator we're instead not using realloc. + * + * Note also that after SIGSEGV sentry_free() becomes a noop. + */ + +/** + * Allocates memory with the underlying allocator. + */ +SENTRY_API void *sentry_malloc(size_t size); + +/** + * Releases memory allocated from the underlying allocator. + */ +SENTRY_API void sentry_free(void *ptr); + +/** + * Legacy function. Alias for `sentry_free`. + */ +#define sentry_string_free sentry_free + +/* -- Protocol Value API -- */ + +/** + * Type of a sentry value. + */ +typedef enum { + SENTRY_VALUE_TYPE_NULL, + SENTRY_VALUE_TYPE_BOOL, + SENTRY_VALUE_TYPE_INT32, + SENTRY_VALUE_TYPE_INT64, + SENTRY_VALUE_TYPE_UINT64, + SENTRY_VALUE_TYPE_DOUBLE, + SENTRY_VALUE_TYPE_STRING, + SENTRY_VALUE_TYPE_LIST, + SENTRY_VALUE_TYPE_OBJECT, +} sentry_value_type_t; + +/** + * Represents a sentry protocol value. + * + * The members of this type should never be accessed. They are only here + * so that alignment for the type can be properly determined. + * + * Values must be released with `sentry_value_decref`. This lowers the + * internal refcount by one. If the refcount hits zero it's freed. Some + * values like primitives have no refcount (like null) so operations on + * those are no-ops. + * + * In addition values can be frozen. Some values like primitives are always + * frozen but lists and dicts are not and can be frozen on demand. This + * automatically happens for some shared values in the event payload like + * the module list. + */ +union sentry_value_u { + uint64_t _bits; + double _double; +}; +typedef union sentry_value_u sentry_value_t; + +/** + * Increments the reference count on the value. + */ +SENTRY_API void sentry_value_incref(sentry_value_t value); + +/** + * Decrements the reference count on the value. + */ +SENTRY_API void sentry_value_decref(sentry_value_t value); + +/** + * Returns the refcount of a value. + */ +SENTRY_API size_t sentry_value_refcount(sentry_value_t value); + +/** + * Freezes a value. + */ +SENTRY_API void sentry_value_freeze(sentry_value_t value); + +/** + * Checks if a value is frozen. + */ +SENTRY_API int sentry_value_is_frozen(sentry_value_t value); + +/** + * Creates a null value. + */ +SENTRY_API sentry_value_t sentry_value_new_null(void); + +/** + * Creates a new 32-bit signed integer value. + */ +SENTRY_API sentry_value_t sentry_value_new_int32(int32_t value); + +/** + * Creates a new 64-bit signed integer value. + */ +SENTRY_API sentry_value_t sentry_value_new_int64(int64_t value); + +/** + * Creates a new 64-bit unsigned integer value. + */ +SENTRY_API sentry_value_t sentry_value_new_uint64(uint64_t value); + +/** + * Creates a new double value. + */ +SENTRY_API sentry_value_t sentry_value_new_double(double value); + +/** + * Creates a new boolean value. + */ +SENTRY_API sentry_value_t sentry_value_new_bool(int value); + +/** + * Creates a new null terminated string. + */ +SENTRY_API sentry_value_t sentry_value_new_string(const char *value); +SENTRY_API sentry_value_t sentry_value_new_string_n( + const char *value, size_t value_len); + +/** + * Creates a new list value. + */ +SENTRY_API sentry_value_t sentry_value_new_list(void); + +/** + * Creates a new object. + */ +SENTRY_API sentry_value_t sentry_value_new_object(void); +/** + * Creates a new user object. + * Will return a sentry_value_new_null if all parameters are null. + * + * This DOES NOT set the user object, this should still be done with + * sentry_set_user(), passing the return of this function as a parameter + */ +SENTRY_API sentry_value_t sentry_value_new_user(const char *id, + const char *username, const char *email, const char *ip_address); +SENTRY_API sentry_value_t sentry_value_new_user_n(const char *id, size_t id_len, + const char *username, size_t username_len, const char *email, + size_t email_len, const char *ip_address, size_t ip_address_len); + +/** + * Returns the type of the value passed. + */ +SENTRY_API sentry_value_type_t sentry_value_get_type(sentry_value_t value); + +/** + * Sets a key to a value in the map. + * + * This moves the ownership of the value into the map. The caller does not + * have to call `sentry_value_decref` on it. + */ +SENTRY_API int sentry_value_set_by_key( + sentry_value_t value, const char *k, sentry_value_t v); + +SENTRY_API int sentry_value_set_by_key_n( + sentry_value_t value, const char *k, size_t k_len, sentry_value_t v); + +/** + * This removes a value from the map by key. + */ +SENTRY_API int sentry_value_remove_by_key(sentry_value_t value, const char *k); +SENTRY_API int sentry_value_remove_by_key_n( + sentry_value_t value, const char *k, size_t k_len); + +/** + * Appends a value to a list. + * + * This moves the ownership of the value into the list. The caller does not + * have to call `sentry_value_decref` on it. + */ +SENTRY_API int sentry_value_append(sentry_value_t value, sentry_value_t v); + +/** + * Inserts a value into the list at a certain position. + * + * This moves the ownership of the value into the list. The caller does not + * have to call `sentry_value_decref` on it. + * + * If the list is shorter than the given index it's automatically extended + * and filled with `null` values. + */ +SENTRY_API int sentry_value_set_by_index( + sentry_value_t value, size_t index, sentry_value_t v); + +/** + * This removes a value from the list by index. + */ +SENTRY_API int sentry_value_remove_by_index(sentry_value_t value, size_t index); + +/** + * Looks up a value in a map by key. If missing a null value is returned. + * The returned value is borrowed. + */ +SENTRY_API sentry_value_t sentry_value_get_by_key( + sentry_value_t value, const char *k); +SENTRY_API sentry_value_t sentry_value_get_by_key_n( + sentry_value_t value, const char *k, size_t k_len); + +/** + * Looks up a value in a map by key. If missing a null value is returned. + * The returned value is owned. + * + * If the caller no longer needs the value it must be released with + * `sentry_value_decref`. + */ +SENTRY_API sentry_value_t sentry_value_get_by_key_owned( + sentry_value_t value, const char *k); +SENTRY_API sentry_value_t sentry_value_get_by_key_owned_n( + sentry_value_t value, const char *k, size_t k_len); + +/** + * Looks up a value in a list by index. If missing a null value is returned. + * The returned value is borrowed. + */ +SENTRY_API sentry_value_t sentry_value_get_by_index( + sentry_value_t value, size_t index); + +/** + * Looks up a value in a list by index. If missing a null value is + * returned. The returned value is owned. + * + * If the caller no longer needs the value it must be released with + * `sentry_value_decref`. + */ +SENTRY_API sentry_value_t sentry_value_get_by_index_owned( + sentry_value_t value, size_t index); + +/** + * Returns the length of the given map or list. + * + * If an item is not a list or map the return value is 0. + */ +SENTRY_API size_t sentry_value_get_length(sentry_value_t value); + +/** + * Converts a value into a 32bit signed integer. + */ +SENTRY_API int32_t sentry_value_as_int32(sentry_value_t value); + +/** + * Converts a value into a 64-bit signed integer. + */ +SENTRY_API int64_t sentry_value_as_int64(sentry_value_t value); + +/** + * Converts a value into a 64-bit unsigned integer. + */ +SENTRY_API uint64_t sentry_value_as_uint64(sentry_value_t value); + +/** + * Converts a value into a double value. + */ +SENTRY_API double sentry_value_as_double(sentry_value_t value); + +/** + * Returns the value as c string. + */ +SENTRY_API const char *sentry_value_as_string(sentry_value_t value); + +/** + * Returns `true` if the value is boolean true. + */ +SENTRY_API int sentry_value_is_true(sentry_value_t value); + +/** + * Returns `true` if the value is null. + */ +SENTRY_API int sentry_value_is_null(sentry_value_t value); + +/** + * Serialize a sentry value to JSON. + * + * The string is freshly allocated and must be freed with + * `sentry_free`. + */ +SENTRY_API char *sentry_value_to_json(sentry_value_t value); + +/** + * Sentry levels for events and breadcrumbs. + */ +typedef enum sentry_level_e { + SENTRY_LEVEL_DEBUG = -1, + SENTRY_LEVEL_INFO = 0, + SENTRY_LEVEL_WARNING = 1, + SENTRY_LEVEL_ERROR = 2, + SENTRY_LEVEL_FATAL = 3, +} sentry_level_t; + +/** + * Creates a new empty Event value. + * + * See https://docs.sentry.io/platforms/native/enriching-events/ for how to + * further work with events, and https://develop.sentry.dev/sdk/event-payloads/ + * for a detailed overview of the possible properties of an Event. + */ +SENTRY_API sentry_value_t sentry_value_new_event(void); + +/** + * Creates a new Message Event value. + * + * See https://develop.sentry.dev/sdk/event-payloads/message/ + * + * `logger` can be NULL to omit the logger value. + */ +SENTRY_API sentry_value_t sentry_value_new_message_event( + sentry_level_t level, const char *logger, const char *text); +SENTRY_API sentry_value_t sentry_value_new_message_event_n(sentry_level_t level, + const char *logger, size_t logger_len, const char *text, size_t text_len); + +/** + * Creates a new Breadcrumb with a specific type and message. + * + * See https://develop.sentry.dev/sdk/event-payloads/breadcrumbs/ + * + * Either parameter can be NULL in which case no such attributes is created. + */ +SENTRY_API sentry_value_t sentry_value_new_breadcrumb( + const char *type, const char *message); +SENTRY_API sentry_value_t sentry_value_new_breadcrumb_n( + const char *type, size_t type_len, const char *message, size_t message_len); + +/** + * Creates a new Exception value. + * + * This is intended for capturing language-level exception, such as from a + * try-catch block. `type` and `value` here refer to the exception class and + * a possible description. + * + * See https://develop.sentry.dev/sdk/event-payloads/exception/ + * + * The returned value needs to be attached to an event via + * `sentry_event_add_exception`. + */ +SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_exception( + const char *type, const char *value); +SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_exception_n( + const char *type, size_t type_len, const char *value, size_t value_len); + +/** + * Creates a new Thread value. + * + * See https://develop.sentry.dev/sdk/event-payloads/threads/ + * + * The returned value needs to be attached to an event via + * `sentry_event_add_thread`. + * + * `name` can be NULL. + */ +SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_thread( + uint64_t id, const char *name); +SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_thread_n( + uint64_t id, const char *name, size_t name_len); + +/** + * Creates a new Stack Trace conforming to the Stack Trace Interface. + * + * See https://develop.sentry.dev/sdk/event-payloads/stacktrace/ + * + * The returned object must be attached to either an exception or thread + * object. + * + * If `ips` is NULL the current stack trace is captured, otherwise `len` + * stack trace instruction pointers are attached to the event. + */ +SENTRY_EXPERIMENTAL_API sentry_value_t sentry_value_new_stacktrace( + void **ips, size_t len); + +/** + * Sets the Stack Trace conforming to the Stack Trace Interface in a value. + * + * The value argument must be either an exception or thread object. + * + * If `ips` is NULL the current stack trace is captured, otherwise `len` stack + * trace instruction pointers are attached to the event. + */ +SENTRY_EXPERIMENTAL_API void sentry_value_set_stacktrace( + sentry_value_t value, void **ips, size_t len); + +/** + * Adds an Exception to an Event value. + * + * This takes ownership of the `exception`. + */ +SENTRY_EXPERIMENTAL_API void sentry_event_add_exception( + sentry_value_t event, sentry_value_t exception); + +/** + * Adds a Thread to an Event value. + * + * This takes ownership of the `thread`. + */ +SENTRY_EXPERIMENTAL_API void sentry_event_add_thread( + sentry_value_t event, sentry_value_t thread); + +/* -- Experimental APIs -- */ + +/** + * Serialize a sentry value to msgpack. + * + * The string is freshly allocated and must be freed with + * `sentry_free`. Since msgpack is not zero terminated + * the size is written to the `size_out` parameter. + */ +SENTRY_EXPERIMENTAL_API char *sentry_value_to_msgpack( + sentry_value_t value, size_t *size_out); + +/** + * Adds a stack trace to an event. + * + * The stack trace is added as part of a new thread object. + * + * If `ips` is NULL the current stack trace is captured, otherwise `len` + * stack trace instruction pointers are attached to the event. + */ +SENTRY_DEPRECATED( + "Use `sentry_value_new_stacktrace` in combination with " + "`sentry_value_new_thread` and `sentry_event_add_thread` instead") +SENTRY_EXPERIMENTAL_API void sentry_event_value_add_stacktrace( + sentry_value_t event, void **ips, size_t len); + +/** + * This represents the OS dependent user context in the case of a crash, and can + * be used to manually capture a crash. + */ +typedef struct sentry_ucontext_s { +#ifdef _WIN32 + EXCEPTION_POINTERS exception_ptrs; +#elif defined(SENTRY_PLATFORM_PS) + int data; +#else + int signum; + siginfo_t *siginfo; + ucontext_t *user_context; +#endif +} sentry_ucontext_t; + +/** + * Unwinds the stack from the given address. + * + * If the address is given in `addr` the stack is unwound form there. + * Otherwise (NULL is passed) the current instruction pointer is used as + * start address. + * Unwinding with a given `addr` is not supported on all platforms. + * + * The stack trace in the form of instruction-addresses, is written to the + * caller allocated `stacktrace_out`, with up to `max_len` frames being written. + * The actual number of unwound stackframes is returned. + */ +SENTRY_EXPERIMENTAL_API size_t sentry_unwind_stack( + void *addr, void **stacktrace_out, size_t max_len); + +/** + * Unwinds the stack from the given context. + * + * The caller is responsible to construct an appropriate `sentry_ucontext_t`. + * Unwinding from a user context is not supported on all platforms. + * + * The stack trace in the form of instruction-addresses, is written to the + * caller allocated `stacktrace_out`, with up to `max_len` frames being written. + * The actual number of unwound stackframes is returned. + */ +SENTRY_EXPERIMENTAL_API size_t sentry_unwind_stack_from_ucontext( + const sentry_ucontext_t *uctx, void **stacktrace_out, size_t max_len); + +/** + * A UUID + */ +typedef struct sentry_uuid_s { + char bytes[16]; +} sentry_uuid_t; + +/** + * Creates the nil uuid. + */ +SENTRY_API sentry_uuid_t sentry_uuid_nil(void); + +/** + * Creates a new uuid4. + */ +SENTRY_API sentry_uuid_t sentry_uuid_new_v4(void); + +/** + * Parses a uuid from a string. + */ +SENTRY_API sentry_uuid_t sentry_uuid_from_string(const char *str); +SENTRY_API sentry_uuid_t sentry_uuid_from_string_n( + const char *str, size_t str_len); + +/** + * Creates a uuid from bytes. + */ +SENTRY_API sentry_uuid_t sentry_uuid_from_bytes(const char bytes[16]); + +/** + * Checks if the uuid is nil. + */ +SENTRY_API int sentry_uuid_is_nil(const sentry_uuid_t *uuid); + +/** + * Returns the bytes of the uuid. + */ +SENTRY_API void sentry_uuid_as_bytes(const sentry_uuid_t *uuid, char bytes[16]); + +/** + * Formats the uuid into a string buffer. + */ +SENTRY_API void sentry_uuid_as_string(const sentry_uuid_t *uuid, char str[37]); + +/** + * A Sentry Envelope. + * + * The Envelope is an abstract type which represents a payload being sent to + * sentry. It can contain one or more items, typically an Event. + * See https://develop.sentry.dev/sdk/envelopes/ + */ +struct sentry_envelope_s; +typedef struct sentry_envelope_s sentry_envelope_t; + +/** + * Frees an envelope. + */ +SENTRY_API void sentry_envelope_free(sentry_envelope_t *envelope); + +/** + * Given an Envelope, returns the header if present. + * + * This returns a borrowed value to the headers in the Envelope. + */ +SENTRY_API sentry_value_t sentry_envelope_get_header( + const sentry_envelope_t *envelope, const char *key); +SENTRY_API sentry_value_t sentry_envelope_get_header_n( + const sentry_envelope_t *envelope, const char *key, size_t key_len); + +/** + * Given an Envelope, returns the embedded Event if there is one. + * + * This returns a borrowed value to the Event in the Envelope. + */ +SENTRY_API sentry_value_t sentry_envelope_get_event( + const sentry_envelope_t *envelope); + +/** + * Given an Envelope, returns the embedded Transaction if there is one. + * + * This returns a borrowed value to the Transaction in the Envelope. + */ +SENTRY_EXPERIMENTAL_API sentry_value_t sentry_envelope_get_transaction( + const sentry_envelope_t *envelope); + +/** + * Serializes the envelope. + * + * The return value needs to be freed with `sentry_free`. + */ +SENTRY_API char *sentry_envelope_serialize( + const sentry_envelope_t *envelope, size_t *size_out); + +/** + * Serializes the envelope into a file. + * + * `path` is assumed to be in platform-specific filesystem path encoding. + * + * Returns 0 on success. + */ +SENTRY_API int sentry_envelope_write_to_file( + const sentry_envelope_t *envelope, const char *path); +SENTRY_API int sentry_envelope_write_to_file_n( + const sentry_envelope_t *envelope, const char *path, size_t path_len); + +/** + * De-serializes an envelope. + * + * The return value needs to be freed with sentry_envelope_free(). + * + * Returns NULL on failure. + */ +SENTRY_API sentry_envelope_t *sentry_envelope_deserialize( + const char *buf, size_t buf_len); + +/** + * De-serializes an envelope from a file. + * + * `path` is assumed to be in platform-specific filesystem path encoding. + * + * API Users on windows are encouraged to use `sentry_envelope_read_from_filew` + * instead. + */ +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_file(const char *path); +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_file_n( + const char *path, size_t path_len); + +#ifdef SENTRY_PLATFORM_WINDOWS +/** + * Wide char versions of `sentry_envelope_read_from_file` and + * `sentry_envelope_read_from_file_n`. + */ +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_filew( + const wchar_t *path); +SENTRY_API sentry_envelope_t *sentry_envelope_read_from_filew_n( + const wchar_t *path, size_t path_len); +#endif + +/** + * Submits an envelope, first checking for consent. + */ +SENTRY_API void sentry_capture_envelope(sentry_envelope_t *envelope); + +/** + * The Sentry Client Options. + * + * See https://docs.sentry.io/platforms/native/configuration/ + */ +struct sentry_options_s; +typedef struct sentry_options_s sentry_options_t; + +/** + * This represents an interface for user-defined transports. + * + * Transports are responsible for sending envelopes to sentry and are the last + * step in the event pipeline. + * + * Envelopes will be submitted to the transport in a _fire and forget_ fashion, + * and the transport must send those envelopes _in order_. + * + * A transport has the following hooks, all of which + * take the user provided `state` as last parameter. The transport state needs + * to be set with `sentry_transport_set_state` and typically holds handles and + * other information that can be reused across requests. + * + * * `send_func`: This function will take ownership of an envelope, and is + * responsible for freeing it via `sentry_envelope_free`. + * * `startup_func`: This hook will be called by sentry inside of `sentry_init` + * and instructs the transport to initialize itself. Failures will bubble up + * to `sentry_init`. + * * `flush_func`: Instructs the transport to flush its queue. + * This hook receives a millisecond-resolution `timeout` parameter and should + * return `0` if the transport queue is flushed within the timeout. + * * `shutdown_func`: Instructs the transport to flush its queue and shut down. + * This hook receives a millisecond-resolution `timeout` parameter and should + * return `0` if the transport is flushed and shut down successfully. + * In case of a non-zero return value, sentry will log an error, but continue + * with freeing the transport. + * * `free_func`: Frees the transports `state`. This hook might be called even + * though `shutdown_func` returned a failure code previously. + * + * The transport interface might be extended in the future with hooks to flush + * its internal queue without shutting down, and to dump its internal queue to + * disk in case of a hard crash. + */ +struct sentry_transport_s; +typedef struct sentry_transport_s sentry_transport_t; + +/** + * Creates a new transport with an initial `send_func`. + */ +SENTRY_API sentry_transport_t *sentry_transport_new( + void (*send_func)(sentry_envelope_t *envelope, void *state)); + +/** + * Sets the transport `state`. + * + * If the state is owned by the transport and needs to be freed, use + * `sentry_transport_set_free_func` to set an appropriate hook. + */ +SENTRY_API void sentry_transport_set_state( + sentry_transport_t *transport, void *state); + +/** + * Sets the transport hook to free the transport `state`. + */ +SENTRY_API void sentry_transport_set_free_func( + sentry_transport_t *transport, void (*free_func)(void *state)); + +/** + * Sets the transport startup hook. + * + * This hook is called from within `sentry_init` and will get a reference to the + * options which can be used to initialize a transports internal state. + * It should return `0` on success. A failure will bubble up to `sentry_init`. + */ +SENTRY_API void sentry_transport_set_startup_func(sentry_transport_t *transport, + int (*startup_func)(const sentry_options_t *options, void *state)); + +/** + * Sets the transport flush hook. + * + * This hook will receive a millisecond-resolution timeout. + * It should return `0` if all the pending envelopes are + * sent within the timeout, or `1` if the timeout is hit. + */ +SENTRY_API void sentry_transport_set_flush_func(sentry_transport_t *transport, + int (*flush_func)(uint64_t timeout, void *state)); + +/** + * Sets the transport shutdown hook. + * + * This hook will receive a millisecond-resolution timeout. + * It should return `0` on success in case all the pending envelopes have been + * sent within the timeout, or `1` if the timeout was hit. + */ +SENTRY_API void sentry_transport_set_shutdown_func( + sentry_transport_t *transport, + int (*shutdown_func)(uint64_t timeout, void *state)); + +/** + * Generic way to free a transport. + */ +SENTRY_API void sentry_transport_free(sentry_transport_t *transport); + +/** + * Create a new function transport. + * + * It is a convenience function which works with a borrowed `data`, and will + * automatically free the envelope, so the user provided function does not need + * to do that. + */ +SENTRY_DEPRECATED("Use `sentry_transport_new` instead") +SENTRY_API sentry_transport_t *sentry_new_function_transport( + void (*func)(const sentry_envelope_t *envelope, void *data), void *data); + +/** + * This represents an interface for user-defined backends. + * + * Backends are responsible to handle crashes. They are maintained at runtime + * via various life-cycle hooks from the sentry-core. + * + * At this point none of those interfaces are exposed in the API including + * creation and destruction. The main use-case of the backend in the API at this + * point is to disable it via `sentry_options_set_backend` at runtime before it + * is initialized. + */ +struct sentry_backend_s; +typedef struct sentry_backend_s sentry_backend_t; + +/* -- Options APIs -- */ + +/** + * The state of user consent. + */ +typedef enum { + SENTRY_USER_CONSENT_UNKNOWN = -1, + SENTRY_USER_CONSENT_GIVEN = 1, + SENTRY_USER_CONSENT_REVOKED = 0, +} sentry_user_consent_t; + +/** + * The crash handler strategy. + */ +typedef enum { + SENTRY_HANDLER_STRATEGY_DEFAULT = 0, + SENTRY_HANDLER_STRATEGY_CHAIN_AT_START = 1, +} sentry_handler_strategy_t; + +/** + * Creates a new options struct. + * Can be freed with `sentry_options_free`. + */ +SENTRY_API sentry_options_t *sentry_options_new(void); + +/** + * Deallocates previously allocated sentry options. + */ +SENTRY_API void sentry_options_free(sentry_options_t *opts); + +/** + * Sets a transport. + */ +SENTRY_API void sentry_options_set_transport( + sentry_options_t *opts, sentry_transport_t *transport); + +#ifdef SENTRY_PLATFORM_NX +/** + * Function to start a network connection. + * This is called on a background thread so it must be thread-safe. + */ +SENTRY_API void sentry_options_set_network_connect_func( + sentry_options_t *opts, void (*network_connect_func)(void)); + +/** + * If false (the default), the SDK won't add PII or other sensitive data to the + * payload. For example, a pseudo-random identifier combining device and app ID. + */ +SENTRY_API void sentry_options_set_send_default_pii( + sentry_options_t *opts, int value); +#endif + +/** + * Type of the `before_send` callback. + * + * The callback takes ownership of the `event`, and should usually return that + * same event. In case the event should be discarded, the callback needs to + * call `sentry_value_decref` on the provided event, and return a + * `sentry_value_new_null()` instead. + * + * If you have set an `on_crash` callback (independent of whether it discards or + * retains the event), `before_send` will no longer be invoked for crash-events, + * which allows you to better distinguish between crashes and all other events + * in client-side pre-processing. + * + * This function may be invoked inside of a signal handler and must be safe for + * that purpose, see https://man7.org/linux/man-pages/man7/signal-safety.7.html. + * On Windows, it may be called from inside of a `UnhandledExceptionFilter`, see + * the documentation on SEH (structured exception handling) for more information + * https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling + * + * Up to version 0.4.18 the `before_send` callback wasn't invoked in case the + * event sampling discarded an event. In the current implementation the + * `before_send` callback is invoked even if the event sampling discards the + * event, following the cross-SDK session filter order: + * + * https://develop.sentry.dev/sdk/sessions/#filter-order + * + * On Windows the crashpad backend can capture fast-fail crashes which by-pass + * SEH. Since the `before_send` is called by a local exception-handler, it will + * not be invoked when such a crash happened, even though a minidump will be + * sent. + */ +typedef sentry_value_t (*sentry_event_function_t)( + sentry_value_t event, void *hint, void *user_data); + +/** + * Sets the `before_send` callback. + * + * See the `sentry_event_function_t` typedef above for more information. + */ +SENTRY_API void sentry_options_set_before_send( + sentry_options_t *opts, sentry_event_function_t func, void *user_data); + +/** + * Type of the `on_crash` callback. + * + * The `on_crash` callback replaces the `before_send` callback for crash events. + * The interface is analogous to `before_send` in that the callback takes + * ownership of the `event`, and should usually return that same event. In case + * the event should be discarded, the callback needs to call + * `sentry_value_decref` on the provided event, and return a + * `sentry_value_new_null()` instead. + * + * Only the `inproc` backend currently fills the passed-in event with crash + * meta-data. Since both `breakpad` and `crashpad` use minidumps to capture the + * crash state, the passed-in event is empty when using these backends. Changes + * to the event from inside the hooks will be passed along, but in the case of + * the minidump backends these changes might get overwritten during server-side + * ingestion and processing. This primarily affects the exception payloads which + * are auto-generated from the minidump content. See + * https://github.com/getsentry/sentry-native/issues/1147 for details. + * + * If you set this callback in the options, it prevents a concurrently enabled + * `before_send` callback from being invoked in the crash case. This allows for + * better differentiation between crashes and other events and gradual migration + * from existing `before_send` implementations: + * + * - if you have a `before_send` implementation and do not define an `on_crash` + * callback your application will receive both normal and crash events as + * before + * - if you have a `before_send` implementation but only want to handle normal + * events with it, then you can define an `on_crash` callback that returns + * the passed-in event and does nothing else + * - if you are not interested in normal events, but only want to act on + * crashes (within the limits mentioned below), then only define an + * `on_crash` callback with the option to filter (on all backends) or enrich + * (only inproc) the crash event + * + * This function may be invoked inside of a signal handler and must be safe for + * that purpose, see https://man7.org/linux/man-pages/man7/signal-safety.7.html. + * On Windows, it may be called from inside of a `UnhandledExceptionFilter`, see + * the documentation on SEH (structured exception handling) for more information + * https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling + * + * Platform-specific behavior: + * + * - does not work with crashpad on macOS. + * - for breakpad on Linux the `uctx` parameter is always NULL. + * - on Windows the crashpad backend can capture fast-fail crashes which + * by-pass SEH. Since `on_crash` is called by a local exception-handler, it will + * not be invoked when such a crash happened, even though a minidump will be + * sent. + */ +typedef sentry_value_t (*sentry_crash_function_t)( + const sentry_ucontext_t *uctx, sentry_value_t event, void *user_data); + +/** + * Sets the `on_crash` callback. + * + * See the `sentry_crash_function_t` typedef above for more information. + */ +SENTRY_API void sentry_options_set_on_crash( + sentry_options_t *opts, sentry_crash_function_t func, void *data); + +/** + * Sets the DSN. + */ +SENTRY_API void sentry_options_set_dsn(sentry_options_t *opts, const char *dsn); +SENTRY_API void sentry_options_set_dsn_n( + sentry_options_t *opts, const char *dsn, size_t dsn_len); + +/** + * Gets the DSN. + */ +SENTRY_API const char *sentry_options_get_dsn(const sentry_options_t *opts); + +/** + * Sets the sample rate, which should be a double between `0.0` and `1.0`. + * Sentry will randomly discard any event that is captured using + * `sentry_capture_event` when a sample rate < 1 is set. + * + * The sampling happens at the end of the event processing according to the + * following order: + * + * https://develop.sentry.dev/sdk/sessions/#filter-order + * + * Only items 3. to 6. are currently applicable to sentry-native. This means + * each processing step is executed even if the sampling discards the event + * before sending it to the backend. This is particularly relevant to users of + * the `before_send` callback. + * + * The above is in contrast to versions up to 0.4.18 where the sampling happened + * at the beginning of the processing/filter sequence. + */ +SENTRY_API void sentry_options_set_sample_rate( + sentry_options_t *opts, double sample_rate); + +/** + * Gets the sample rate. + */ +SENTRY_API double sentry_options_get_sample_rate(const sentry_options_t *opts); + +/** + * Sets the release. + */ +SENTRY_API void sentry_options_set_release( + sentry_options_t *opts, const char *release); +SENTRY_API void sentry_options_set_release_n( + sentry_options_t *opts, const char *release, size_t release_len); + +/** + * Gets the release. + */ +SENTRY_API const char *sentry_options_get_release(const sentry_options_t *opts); + +/** + * Sets the environment. + */ +SENTRY_API void sentry_options_set_environment( + sentry_options_t *opts, const char *environment); +SENTRY_API void sentry_options_set_environment_n( + sentry_options_t *opts, const char *environment, size_t environment_len); + +/** + * Gets the environment. + */ +SENTRY_API const char *sentry_options_get_environment( + const sentry_options_t *opts); + +/** + * Sets the dist. + */ +SENTRY_API void sentry_options_set_dist( + sentry_options_t *opts, const char *dist); +SENTRY_API void sentry_options_set_dist_n( + sentry_options_t *opts, const char *dist, size_t dist_len); + +/** + * Gets the dist. + */ +SENTRY_API const char *sentry_options_get_dist(const sentry_options_t *opts); + +/** + * Configures the proxy. + * + * The given proxy has to include the full scheme, + * eg. `http://some.proxy/` or `socks5://some.proxy/`. + * + * Not every transport behaves the same way when configuring a proxy. + * On Windows if a transport can't connect to the proxy it will fall back on a + * connection without proxy. This is also true for the crashpad_handler + * transport on macOS for a socks proxy, but not for a http proxy. + * All transports that use libcurl (Linux and the Native SDK transport on macOS) + * will honor the proxy settings and not fall back. + */ +SENTRY_API void sentry_options_set_proxy( + sentry_options_t *opts, const char *proxy); +SENTRY_API void sentry_options_set_proxy_n( + sentry_options_t *opts, const char *proxy, size_t proxy_len); + +/** + * Returns the configured proxy. + */ +SENTRY_API const char *sentry_options_get_proxy(const sentry_options_t *opts); + +/** + * Configures the proxy. + * + * The given proxy has to include the full scheme, + * eg. `http://some.proxy/. + */ +SENTRY_DEPRECATED("Use `sentry_options_set_proxy` instead") +SENTRY_API void sentry_options_set_http_proxy( + sentry_options_t *opts, const char *proxy); +SENTRY_DEPRECATED("Use `sentry_options_set_proxy_n` instead") +SENTRY_API void sentry_options_set_http_proxy_n( + sentry_options_t *opts, const char *proxy, size_t proxy_len); + +/** + * Returns the configured proxy. + */ +SENTRY_API const char *sentry_options_get_http_proxy( + const sentry_options_t *opts); + +/** + * Configures the path to a file containing ssl certificates for + * verification. + */ +SENTRY_API void sentry_options_set_ca_certs( + sentry_options_t *opts, const char *path); +SENTRY_API void sentry_options_set_ca_certs_n( + sentry_options_t *opts, const char *path, size_t path_len); + +/** + * Returns the configured path for ca certificates. + */ +SENTRY_API const char *sentry_options_get_ca_certs( + const sentry_options_t *opts); + +/** + * Configures the name of the http transport thread. + */ +SENTRY_API void sentry_options_set_transport_thread_name( + sentry_options_t *opts, const char *name); +SENTRY_API void sentry_options_set_transport_thread_name_n( + sentry_options_t *opts, const char *name, size_t name_len); + +/** + * Returns the configured http transport thread name. + */ +SENTRY_API const char *sentry_options_get_transport_thread_name( + const sentry_options_t *opts); + +/* + * Configures the name of the sentry SDK. Returns 0 on success. + */ +SENTRY_API int sentry_options_set_sdk_name( + sentry_options_t *opts, const char *sdk_name); + +/* + * Configures the name of the sentry SDK. Returns 0 on success. + */ +SENTRY_API int sentry_options_set_sdk_name_n( + sentry_options_t *opts, const char *sdk_name, size_t sdk_name_len); + +/** + * Returns the configured sentry SDK name. Unless overwritten this defaults to + * SENTRY_SDK_NAME. + */ +SENTRY_API const char *sentry_options_get_sdk_name( + const sentry_options_t *opts); + +/** + * Returns the user agent. Unless overwritten this defaults to + * "SENTRY_SDK_NAME / SENTRY_SDK_VERSION". + */ +SENTRY_API const char *sentry_options_get_user_agent( + const sentry_options_t *opts); + +/** + * Enables or disables debug printing mode. To change the log level from the + * default DEBUG level, use `sentry_options_set_logger_level`. + */ +SENTRY_API void sentry_options_set_debug(sentry_options_t *opts, int debug); + +/** + * Returns the current value of the debug flag. + */ +SENTRY_API int sentry_options_get_debug(const sentry_options_t *opts); + +/** + * Sets the level of the logger. Has no effect if `debug` is not set to true. + */ +SENTRY_API void sentry_options_set_logger_level( + sentry_options_t *opts, sentry_level_t level); + +/** + * Sets the number of breadcrumbs being tracked and attached to events. + * + * Defaults to 100. + */ +SENTRY_API void sentry_options_set_max_breadcrumbs( + sentry_options_t *opts, size_t max_breadcrumbs); + +/** + * Gets the number of breadcrumbs being tracked and attached to events. + */ +SENTRY_API size_t sentry_options_get_max_breadcrumbs( + const sentry_options_t *opts); + +/** + * Type of the callback for logger function. + */ +typedef void (*sentry_logger_function_t)( + sentry_level_t level, const char *message, va_list args, void *userdata); + +/** + * Sets the sentry-native logger function. + * + * Used for logging debug events when the `debug` option is set to true. + * + * Note: Multiple threads may invoke your `func`. If you plan to mutate any data + * inside the `userdata` argument after initialization, you must ensure proper + * synchronization inside the logger function. + * + */ +SENTRY_API void sentry_options_set_logger( + sentry_options_t *opts, sentry_logger_function_t func, void *userdata); + +/** + * Enables or disables automatic session tracking. + * + * Automatic session tracking is enabled by default and is equivalent to calling + * `sentry_start_session` after startup. + * There can only be one running session, and the current session will always be + * closed implicitly by `sentry_close`, when starting a new session with + * `sentry_start_session`, or manually by calling `sentry_end_session`. + */ +SENTRY_API void sentry_options_set_auto_session_tracking( + sentry_options_t *opts, int val); + +/** + * Returns true if automatic session tracking is enabled. + */ +SENTRY_API int sentry_options_get_auto_session_tracking( + const sentry_options_t *opts); + +/** + * Enables or disables user consent requirements for uploads. + * + * This disables uploads until the user has given the consent to the SDK. + * Consent itself is given with `sentry_user_consent_give` and + * `sentry_user_consent_revoke`. + */ +SENTRY_API void sentry_options_set_require_user_consent( + sentry_options_t *opts, int val); + +/** + * Returns true if user consent is required. + */ +SENTRY_API int sentry_options_get_require_user_consent( + const sentry_options_t *opts); + +/** + * Enables or disables on-device symbolication of stack traces. + * + * This feature can have a performance impact, and is enabled by default on + * Android. It is usually only needed when it is not possible to provide debug + * information files for system libraries which are needed for serverside + * symbolication. + */ +SENTRY_API void sentry_options_set_symbolize_stacktraces( + sentry_options_t *opts, int val); + +/** + * Returns true if on-device symbolication of stack traces is enabled. + */ +SENTRY_API int sentry_options_get_symbolize_stacktraces( + const sentry_options_t *opts); + +/** + * Adds a new attachment to be sent along. + * + * `path` is assumed to be in platform-specific filesystem path encoding. + * API Users on windows are encouraged to use `sentry_options_add_attachmentw` + * instead. + * + * See the NOTE on attachments above for restrictions of this API. + */ +SENTRY_API void sentry_options_add_attachment( + sentry_options_t *opts, const char *path); +SENTRY_API void sentry_options_add_attachment_n( + sentry_options_t *opts, const char *path, size_t path_len); + +/** + * Adds a new view hierarchy attachment to be sent along. + * + * The primary use-case is for downstream SDKs (like sentry-godot). The + * view-hierarchy.json file should follow the representation defined in RFC#33 + * https://github.com/getsentry/rfcs/blob/main/text/0033-view-hierarchy.md + * + * `path` is assumed to be in platform-specific filesystem path encoding. + * API Users on windows are encouraged to use + * `sentry_options_add_view_hierarchyw` instead. + */ +SENTRY_API void sentry_options_add_view_hierarchy( + sentry_options_t *opts, const char *path); +SENTRY_API void sentry_options_add_view_hierarchy_n( + sentry_options_t *opts, const char *path, size_t path_len); + +/** + * Enables or disables attaching screenshots to fatal error events. Disabled by + * default. + * + * This feature is currently supported by all backends on Windows. Only the + * `crashpad` backend can capture screenshots of fast-fail crashes that bypass + * SEH (structured exception handling). + */ +SENTRY_EXPERIMENTAL_API void sentry_options_set_attach_screenshot( + sentry_options_t *opts, int val); + +/** + * Sets the path to the crashpad handler if the crashpad backend is used. + * + * The path defaults to the `crashpad_handler`/`crashpad_handler.exe` + * executable, depending on platform, which is expected to be present in the + * same directory as the app executable. + * + * It is recommended that library users set an explicit handler path, depending + * on the directory/executable structure of their app. + * + * `path` is assumed to be in platform-specific filesystem path encoding. + * API Users on windows are encouraged to use `sentry_options_set_handler_pathw` + * instead. + */ +SENTRY_API void sentry_options_set_handler_path( + sentry_options_t *opts, const char *path); +SENTRY_API void sentry_options_set_handler_path_n( + sentry_options_t *opts, const char *path, size_t path_len); + +/** + * Sets the path to the Sentry Database Directory. + * + * Sentry will use this path to persist user consent, sessions, and other + * artifacts in case of a crash. This will also be used by the crashpad backend + * if it is configured. + * + * The directory is used for "cached" data, which needs to persist across + * application restarts to ensure proper flagging of release-health sessions, + * but might otherwise be safely purged regularly. + * + * It is roughly equivalent to the type of `AppData/Local` on Windows and + * `XDG_CACHE_HOME` on Linux, and equivalent runtime directories on other + * platforms. + * + * It is recommended that users set an explicit absolute path, depending + * on their apps runtime directory. The path will be created if it does not + * exist, and will be resolved to an absolute path inside of `sentry_init`. The + * directory should not be shared with other application data/configuration, as + * sentry-native will enumerate and possibly delete files in that directory. An + * example might be `$XDG_CACHE_HOME/your-app/sentry` + * + * If no explicit path it set, sentry-native will default to `.sentry-native` in + * the current working directory, with no specific platform-specific handling. + * + * `path` is assumed to be in platform-specific filesystem path encoding. + * API Users on windows are encouraged to use + * `sentry_options_set_database_pathw` instead. + */ +SENTRY_API void sentry_options_set_database_path( + sentry_options_t *opts, const char *path); +SENTRY_API void sentry_options_set_database_path_n( + sentry_options_t *opts, const char *path, size_t path_len); + +#ifdef SENTRY_PLATFORM_WINDOWS +/** + * Wide char version of `sentry_options_add_attachment`. + */ +SENTRY_API void sentry_options_add_attachmentw( + sentry_options_t *opts, const wchar_t *path); +SENTRY_API void sentry_options_add_attachmentw_n( + sentry_options_t *opts, const wchar_t *path, size_t path_len); + +/** + * Wide char version of `sentry_options_add_view_hierarchy`. + */ +SENTRY_API void sentry_options_add_view_hierarchyw( + sentry_options_t *opts, const wchar_t *path); +SENTRY_API void sentry_options_add_view_hierarchyw_n( + sentry_options_t *opts, const wchar_t *path, size_t path_len); + +/** + * Wide char version of `sentry_options_set_handler_path`. + */ +SENTRY_API void sentry_options_set_handler_pathw( + sentry_options_t *opts, const wchar_t *path); +SENTRY_API void sentry_options_set_handler_pathw_n( + sentry_options_t *opts, const wchar_t *path, size_t path_len); + +/** + * Wide char version of `sentry_options_set_database_path`. + */ +SENTRY_API void sentry_options_set_database_pathw( + sentry_options_t *opts, const wchar_t *path); +SENTRY_API void sentry_options_set_database_pathw_n( + sentry_options_t *opts, const wchar_t *path, size_t path_len); + +/** + * Allows users to define a thread stack guarantee manually on each thread. This + * is necessary for crash handlers to run after a thread crashed due to a + * stack-overflow on Windows. + * + * By default the Native SDK automatically sets this value for you, but in some + * cases it might be preferable to set these values yourself for each thread you + * manage. Ensure to disable the `SENTRY_THREAD_STACK_GUARANTEE_AUTO_INIT` CMake + * option when building the Native SDK to have full control over each threads + * stack guarantee. + * + * The input parameter specifies a size in bytes and should be a multiple of the + * page size. Returns `1` if the thread stack guarantee was set successfully and + * `0` otherwise. + * + * Note: when we auto-assign the stack guarantee we check against the thread's + * stack reserve (see `SENTRY_THREAD_STACK_GUARANTEE_FACTOR` in the + * `README.md`). This check is not applied when you call this function. + * Note: this function depends on the SDK being initialized when doing static + * builds or in any configuration on Xbox. + */ +SENTRY_EXPERIMENTAL_API int sentry_set_thread_stack_guarantee( + uint32_t stack_guarantee_in_bytes); +#endif + +/** + * Enables forwarding to the system crash reporter. Disabled by default. + * + * This setting only has an effect when using Crashpad on macOS. If enabled, + * Crashpad forwards crashes to the macOS system crash reporter. Depending + * on the crash, this may impact the crash time. Even if enabled, Crashpad + * may choose not to forward certain crashes. + */ +SENTRY_API void sentry_options_set_system_crash_reporter_enabled( + sentry_options_t *opts, int enabled); + +/** + * Enables a wait for the crash report upload to be finished before shutting + * down. This is disabled by default. + * + * This setting only has an effect when using the `crashpad` backend on Linux + * and Windows. + */ +SENTRY_API void sentry_options_set_crashpad_wait_for_upload( + sentry_options_t *opts, int wait_for_upload); + +/** + * Sets the maximum time (in milliseconds) to wait for the asynchronous + * tasks to end on shutdown, before attempting a forced termination. + */ +SENTRY_API void sentry_options_set_shutdown_timeout( + sentry_options_t *opts, uint64_t shutdown_timeout); + +/** + * Gets the maximum time (in milliseconds) to wait for the asynchronous tasks to + * end on shutdown, before attempting a forced termination. + */ +SENTRY_API uint64_t sentry_options_get_shutdown_timeout(sentry_options_t *opts); + +/** + * Sets a user-defined backend. + * + * Since creation and destruction of backends is not exposed in the API, this + * can only be used to set the backend to `NULL`, which disables the backend in + * the initialization. + */ +SENTRY_API void sentry_options_set_backend( + sentry_options_t *opts, sentry_backend_t *backend); + +/* -- Global/Scope APIs -- */ + +/** + * Initializes the Sentry SDK with the specified options. + * + * This takes ownership of the options. After the options have been set + * they cannot be modified any more. + * Depending on the configured transport and backend, this function might not be + * fully thread-safe. + * Returns 0 on success. + */ +SENTRY_API int sentry_init(sentry_options_t *options); + +/** + * Instructs the transport to flush its send queue. + * + * The `timeout` parameter is in milliseconds. + * + * Returns 0 on success, or a non-zero return value in case the timeout is hit. + * + * Note that this function will block the thread it was called from until the + * sentry background worker has finished its work or it timed out, whichever + * comes first. + */ +SENTRY_API int sentry_flush(uint64_t timeout); + +/** + * Shuts down the sentry client and forces transports to flush out. + * + * Returns the number of envelopes that have been dumped. + * + * Note that this does not uninstall any crash handler installed by our + * backends, which will still process crashes after `sentry_close()`, except + * when using `crashpad` on Linux or the `inproc` backend. + * + * Further note that this function will block the thread it was called from + * until the sentry background worker has finished its work or it timed out, + * whichever comes first. + */ +SENTRY_API int sentry_close(void); + +/** + * Shuts down the sentry client and forces transports to flush out. + * + * Returns the number of envelopes that have been dumped. + */ +SENTRY_DEPRECATED("Use `sentry_close` instead") +SENTRY_API int sentry_shutdown(void); + +/** + * This will lazily load and cache a list of all the loaded libraries. + * + * Returns a new reference to an immutable, frozen list. + * The reference must be released with `sentry_value_decref`. + */ +SENTRY_EXPERIMENTAL_API sentry_value_t sentry_get_modules_list(void); + +/** + * Clears the internal module cache. + * + * For performance reasons, sentry will cache the list of loaded libraries when + * capturing events. This cache can get out-of-date when loading or unloading + * libraries at runtime. It is therefore recommended to call + * `sentry_clear_modulecache` when doing so, to make sure that the next call to + * `sentry_capture_event` will have an up-to-date module list. + */ +SENTRY_EXPERIMENTAL_API void sentry_clear_modulecache(void); + +/** + * Re-initializes the Sentry backend. + * + * This is needed if a third-party library overrides the previously installed + * signal handler. Calling this function can be potentially dangerous and should + * only be done when necessary. + * + * Returns 0 on success. + */ +SENTRY_EXPERIMENTAL_API int sentry_reinstall_backend(void); + +/** + * Gives user consent. + */ +SENTRY_API void sentry_user_consent_give(void); + +/** + * Revokes user consent. + */ +SENTRY_API void sentry_user_consent_revoke(void); + +/** + * Resets the user consent (back to unknown). + */ +SENTRY_API void sentry_user_consent_reset(void); + +/** + * Checks the current state of user consent. + */ +SENTRY_API sentry_user_consent_t sentry_user_consent_get(void); + +/** + * A sentry Scope. + * + * See https://develop.sentry.dev/sdk/telemetry/scopes/ + */ +struct sentry_scope_s; +typedef struct sentry_scope_s sentry_scope_t; + +/** + * Creates a local scope. + */ +SENTRY_API sentry_scope_t *sentry_local_scope_new(void); + +/** + * Sends a sentry event. + * + * If returns a nil UUID if the event being passed in is a transaction, and the + * transaction will not be sent nor consumed. `sentry_transaction_finish` should + * be used to send transactions. + */ +SENTRY_API sentry_uuid_t sentry_capture_event(sentry_value_t event); + +/** + * Sends a sentry event with a local scope. + * + * Takes ownership of `scope`. + */ +SENTRY_API sentry_uuid_t sentry_capture_event_with_scope( + sentry_value_t event, sentry_scope_t *scope); + +/** + * Allows capturing independently created minidumps. + * + * This generates a fatal error event, includes the scope and attachments. + * If a before-send hook doesn't drop the event, the minidump is attached + * and the event is sent. + * + * Returns a nil `UUID` if capturing the minidump failed and the event-id + * otherwise. Uploads can fail because capturing is asynchronous, so a non-nil + * `UUID` is not a delivery guarantee. However, if the minidump is successfully + * delivered, the ID is guaranteed to be the same as the event in the Sentry UI. + * + * Note: You don't need this function if you rely on Sentry to create the + * minidump. This is useful when you have a minidump captured through a + * different mechanism, and you want Sentry to ingest it. + */ +SENTRY_API sentry_uuid_t sentry_capture_minidump(const char *path); +SENTRY_API sentry_uuid_t sentry_capture_minidump_n( + const char *path, size_t path_len); + +/** + * Captures a system-native exception that you retrieve when you manually handle + * `POSIX` signals or `SEH` exceptions and want to keep using that handling + * instead of the top-level handlers in our backends. The exception is still + * processed as a sentry event inside the SDK, including applying scope metadata + * and invoking hooks. + * + * The passed in `sentry_ucontext_t` must be filled with the OS-specific + * exception data (as specified in the struct definition) that you retrieve + * from your handler. + * + * This is safe to be called from a crashing thread and may not return. + * + * Note: The `crashpad` client currently supports this only on Windows. `inproc` + * and `breakpad` supports it on all platforms (on macOS, the `uctx` + * argument is ignored when using the `breakpad` backend). + */ +SENTRY_EXPERIMENTAL_API void sentry_handle_exception( + const sentry_ucontext_t *uctx); + +/** + * Adds the breadcrumb to be sent in case of an event. + */ +SENTRY_API void sentry_add_breadcrumb(sentry_value_t breadcrumb); +SENTRY_API void sentry_scope_add_breadcrumb( + sentry_scope_t *scope, sentry_value_t breadcrumb); + +/** + * Sets the specified user. + */ +SENTRY_API void sentry_set_user(sentry_value_t user); +SENTRY_API void sentry_scope_set_user( + sentry_scope_t *scope, sentry_value_t user); + +/** + * Removes a user. + */ +SENTRY_API void sentry_remove_user(void); + +/** + * Sets a tag. + */ +SENTRY_API void sentry_set_tag(const char *key, const char *value); +SENTRY_API void sentry_set_tag_n( + const char *key, size_t key_len, const char *value, size_t value_len); +SENTRY_API void sentry_scope_set_tag( + sentry_scope_t *scope, const char *key, const char *value); +SENTRY_API void sentry_scope_set_tag_n(sentry_scope_t *scope, const char *key, + size_t key_len, const char *value, size_t value_len); + +/** + * Removes the tag with the specified key. + */ +SENTRY_API void sentry_remove_tag(const char *key); +SENTRY_API void sentry_remove_tag_n(const char *key, size_t key_len); + +/** + * Sets extra information. + */ +SENTRY_API void sentry_set_extra(const char *key, sentry_value_t value); +SENTRY_API void sentry_set_extra_n( + const char *key, size_t key_len, sentry_value_t value); +SENTRY_API void sentry_scope_set_extra( + sentry_scope_t *scope, const char *key, sentry_value_t value); +SENTRY_API void sentry_scope_set_extra_n(sentry_scope_t *scope, const char *key, + size_t key_len, sentry_value_t value); + +/** + * Removes the extra with the specified key. + */ +SENTRY_API void sentry_remove_extra(const char *key); +SENTRY_API void sentry_remove_extra_n(const char *key, size_t key_len); + +/** + * Sets a context object. + */ +SENTRY_API void sentry_set_context(const char *key, sentry_value_t value); +SENTRY_API void sentry_set_context_n( + const char *key, size_t key_len, sentry_value_t value); +SENTRY_API void sentry_scope_set_context( + sentry_scope_t *scope, const char *key, sentry_value_t value); +SENTRY_API void sentry_scope_set_context_n(sentry_scope_t *scope, + const char *key, size_t key_len, sentry_value_t value); + +/** + * Removes the context object with the specified key. + */ +SENTRY_API void sentry_remove_context(const char *key); +SENTRY_API void sentry_remove_context_n(const char *key, size_t key_len); + +/** + * Sets the event fingerprint. + * + * This accepts a variable number of arguments, and needs to be terminated by a + * trailing `NULL`. + */ +SENTRY_API void sentry_set_fingerprint(const char *fingerprint, ...); +SENTRY_API void sentry_set_fingerprint_n( + const char *fingerprint, size_t fingerprint_len, ...); +SENTRY_API void sentry_scope_set_fingerprint( + sentry_scope_t *scope, const char *fingerprint, ...); +SENTRY_API void sentry_scope_set_fingerprint_n(sentry_scope_t *scope, + const char *fingerprint, size_t fingerprint_len, ...); + +/** + * Sets the event fingerprints. + * + * This accepts a list of fingerprints created with `sentry_value_new_list`. + */ +SENTRY_API void sentry_scope_set_fingerprints( + sentry_scope_t *scope, sentry_value_t fingerprints); + +/** + * Removes the fingerprint. + */ +SENTRY_API void sentry_remove_fingerprint(void); + +/** + * Set the trace. The primary use for this is to allow other SDKs to propagate + * their trace context to connect events on all layers. + * + * Once a trace is managed by the downstream SDK using this function, + * transactions no longer act as automatic trace boundaries. + */ +SENTRY_API void sentry_set_trace( + const char *trace_id, const char *parent_span_id); +SENTRY_API void sentry_set_trace_n(const char *trace_id, size_t trace_id_len, + const char *parent_span_id, size_t parent_span_id_len); + +/** + * Generates a new random `trace_id` and `span_id` and sets these onto + * the propagation context. Use this to set a trace boundary for + * events/transactions. + * + * Once you regenerate a trace manually, transactions no longer act as automatic + * trace boundaries. This means all following transactions will be part of the + * same trace until you regenerate the trace again. + * + * We urge you not to use this function if you use the Native SDK in the context + * of a downstream SDK like Android, .NET, Unity or Unreal, because it will + * interfere with cross-SDK traces which are managed by these SDKs. + */ +SENTRY_EXPERIMENTAL_API void sentry_regenerate_trace(void); + +/** + * Sets the transaction. + */ +SENTRY_API void sentry_set_transaction(const char *transaction); +SENTRY_API void sentry_set_transaction_n( + const char *transaction, size_t transaction_len); + +/** + * Sets the event level. + */ +SENTRY_API void sentry_set_level(sentry_level_t level); +SENTRY_API void sentry_scope_set_level( + sentry_scope_t *scope, sentry_level_t level); + +/** + * Sets the maximum number of spans that can be attached to a + * transaction. + */ +SENTRY_EXPERIMENTAL_API void sentry_options_set_max_spans( + sentry_options_t *opts, size_t max_spans); + +/** + * Gets the maximum number of spans that can be attached to a + * transaction. + */ +SENTRY_EXPERIMENTAL_API size_t sentry_options_get_max_spans( + sentry_options_t *opts); + +/** + * Sets the sample rate for transactions. Should be a double between + * `0.0` and `1.0`. Transactions will be randomly discarded during + * `sentry_transaction_finish` when the sample rate is < 1.0. + */ +SENTRY_EXPERIMENTAL_API void sentry_options_set_traces_sample_rate( + sentry_options_t *opts, double sample_rate); + +/** + * Returns the sample rate for transactions. + */ +SENTRY_EXPERIMENTAL_API double sentry_options_get_traces_sample_rate( + sentry_options_t *opts); + +/** + * A sentry Transaction Context. + * + * See Transaction Interface under + * https://develop.sentry.dev/sdk/performance/#new-span-and-transaction-classes + */ +struct sentry_transaction_context_s; +typedef struct sentry_transaction_context_s sentry_transaction_context_t; +typedef double (*sentry_traces_sampler_function)( + const sentry_transaction_context_t *transaction_ctx, + sentry_value_t custom_sampling_ctx, const int *parent_sampled); + +/** + * Sets the traces sampler callback. Should be a function that returns a double + * and takes in a sentry_transaction_context_t pointer, a sentry_value_t for + * a custom sampling context and an int pointer for the parent sampled flag. + */ +SENTRY_EXPERIMENTAL_API void sentry_options_set_traces_sampler( + sentry_options_t *opts, sentry_traces_sampler_function callback); + +#ifdef SENTRY_PLATFORM_LINUX + +/** + * Returns the currently set strategy for the handler. + * + * This option does only work for the `inproc` backend on `Linux` and `Android`. + * + * The main use-case is when the Native SDK is used in the context of the + * CLR/Mono runtimes which convert some POSIX signals into managed-code + * exceptions and discontinue the signal chain. + * + * If this happens and we invoke the previous handler at the end (i.e., after + * our handler processed the signal, which is the default strategy) we will end + * up sending a native crash in addition to the managed code exception (which + * will either generate another crash-event if uncaught or could be handled in + * the managed code and neither terminate the application nor create a crash + * event). To correctly process the signals of CLR/Mono applications, we must + * invoke the runtime handler at the start of our handler. + */ +SENTRY_EXPERIMENTAL_API sentry_handler_strategy_t +sentry_options_get_handler_strategy(const sentry_options_t *opts); + +/** + * Sets the handler strategy. + */ +SENTRY_EXPERIMENTAL_API void sentry_options_set_handler_strategy( + sentry_options_t *opts, sentry_handler_strategy_t handler_strategy); + +#endif // SENTRY_PLATFORM_LINUX + +/** + * A sentry Attachment. + * + * See https://develop.sentry.dev/sdk/data-model/envelope-items/#attachment + */ +struct sentry_attachment_s; +typedef struct sentry_attachment_s sentry_attachment_t; + +/** + * Attaches a file to be sent along with events. + * + * `path` is assumed to be in platform-specific filesystem path encoding. + * API Users on windows are encouraged to use `sentry_attach_filew` or + * `sentry_scope_attach_filew` instead. + * + * The same file cannot be attached multiple times i.e. `path` must be unique. + * Calling this function multiple times with the same `path` is safe, but + * duplicate attachments with equal paths will not be added. + * + * The returned `sentry_attachment_t` is owned by the SDK and will remain valid + * until the attachment is removed with `sentry_remove_attachment` or + * `sentry_close` is called. + * + * See the NOTE on attachments above for restrictions of this API. + */ +SENTRY_API sentry_attachment_t *sentry_attach_file(const char *path); +SENTRY_API sentry_attachment_t *sentry_attach_file_n( + const char *path, size_t path_len); +SENTRY_API sentry_attachment_t *sentry_scope_attach_file( + sentry_scope_t *scope, const char *path); +SENTRY_API sentry_attachment_t *sentry_scope_attach_file_n( + sentry_scope_t *scope, const char *path, size_t path_len); + +/** + * Attaches bytes to be sent along with events. + * + * `filename` is assumed to be in platform-specific filesystem path encoding. + * API Users on windows are encouraged to use `sentry_attach_bytesw` or + * `sentry_scope_attach_bytesw` instead. + * + * `filename` is used to identify the attachment in the Sentry Web UI. It is + * recommended to use unique filenames to make attachments easier to + * differentiate. However, neither `filename` nor `buf` is used to reject + * duplicate attachments. + * + * NOTE: When using the `crashpad` backend, it writes byte attachments to disk + * into a flat directory structure. If multiple buffers are attached with the + * same `filename`, it will internally ensure unique filenames for attachments + * by appending a unique suffix to the filename. Therefore, attachments may show + * up with altered names in the Sentry Web UI. + * + * The returned `sentry_attachment_t` is owned by the SDK and will remain valid + * until the attachment is removed with `sentry_remove_attachment` or + * `sentry_close` is called. + * + * See the NOTE on attachments above for restrictions of this API. + */ +SENTRY_API sentry_attachment_t *sentry_attach_bytes( + const char *buf, size_t buf_len, const char *filename); +SENTRY_API sentry_attachment_t *sentry_attach_bytes_n( + const char *buf, size_t buf_len, const char *filename, size_t filename_len); +SENTRY_API sentry_attachment_t *sentry_scope_attach_bytes(sentry_scope_t *scope, + const char *buf, size_t buf_len, const char *filename); +SENTRY_API sentry_attachment_t *sentry_scope_attach_bytes_n( + sentry_scope_t *scope, const char *buf, size_t buf_len, + const char *filename, size_t filename_len); + +/** + * Removes and frees all previously added attachments. + */ +SENTRY_API void sentry_clear_attachments(void); + +/** + * Removes and frees a previously added attachment. + * + * See the NOTE on attachments above for restrictions of this API. + */ +SENTRY_API void sentry_remove_attachment(sentry_attachment_t *attachment); + +#ifdef SENTRY_PLATFORM_WINDOWS +/** + * Wide char versions of `sentry_attach_file` and `sentry_scope_attach_file`. + */ +SENTRY_API sentry_attachment_t *sentry_attach_filew(const wchar_t *path); +SENTRY_API sentry_attachment_t *sentry_attach_filew_n( + const wchar_t *path, size_t path_len); +SENTRY_API sentry_attachment_t *sentry_scope_attach_filew( + sentry_scope_t *scope, const wchar_t *path); +SENTRY_API sentry_attachment_t *sentry_scope_attach_filew_n( + sentry_scope_t *scope, const wchar_t *path, size_t path_len); + +/** + * Wide char versions of `sentry_attach_bytes` and `sentry_scope_attach_bytes`. + */ +SENTRY_API sentry_attachment_t *sentry_attach_bytesw( + const char *buf, size_t buf_len, const wchar_t *filename); +SENTRY_API sentry_attachment_t *sentry_attach_bytesw_n(const char *buf, + size_t buf_len, const wchar_t *filename, size_t filename_len); +SENTRY_API sentry_attachment_t *sentry_scope_attach_bytesw( + sentry_scope_t *scope, const char *buf, size_t buf_len, + const wchar_t *filename); +SENTRY_API sentry_attachment_t *sentry_scope_attach_bytesw_n( + sentry_scope_t *scope, const char *buf, size_t buf_len, + const wchar_t *filename, size_t filename_len); +#endif + +/** + * Sets the content type of an attachment. + */ +SENTRY_API void sentry_attachment_set_content_type( + sentry_attachment_t *attachment, const char *content_type); +SENTRY_API void sentry_attachment_set_content_type_n( + sentry_attachment_t *attachment, const char *content_type, + size_t content_type_len); + +/** + * Sets the filename of an attachment. + */ +SENTRY_API void sentry_attachment_set_filename( + sentry_attachment_t *attachment, const char *filename); +SENTRY_API void sentry_attachment_set_filename_n( + sentry_attachment_t *attachment, const char *filename, size_t filename_len); + +#ifdef SENTRY_PLATFORM_WINDOWS +/** + * Wide char version of `sentry_attachment_set_filename`. + */ +SENTRY_API void sentry_attachment_set_filenamew( + sentry_attachment_t *attachment, const wchar_t *filename); +SENTRY_API void sentry_attachment_set_filenamew_n( + sentry_attachment_t *attachment, const wchar_t *filename, + size_t filename_len); +#endif + +/* -- Session APIs -- */ + +typedef enum { + SENTRY_SESSION_STATUS_OK, + SENTRY_SESSION_STATUS_CRASHED, + SENTRY_SESSION_STATUS_ABNORMAL, + SENTRY_SESSION_STATUS_EXITED, +} sentry_session_status_t; + +/** + * Starts a new session. + */ +SENTRY_API void sentry_start_session(void); + +/** + * Ends a session. + */ +SENTRY_API void sentry_end_session(void); + +/** + * Ends a session with an explicit `status` code. + */ +SENTRY_EXPERIMENTAL_API void sentry_end_session_with_status( + sentry_session_status_t status); + +/* -- Performance Monitoring/Tracing APIs -- */ + +/** + * A sentry Transaction. + * + * See https://develop.sentry.dev/sdk/event-payloads/transaction/ + */ +struct sentry_transaction_s; +typedef struct sentry_transaction_s sentry_transaction_t; + +/** + * Type of the `before_transaction` callback. + * + * The callback takes ownership of the `transaction`, and should usually return + * that same transaction. In case the transaction should be discarded, the + * callback needs to call `sentry_value_decref` on the provided transaction, and + * return a `sentry_value_new_null()` instead. + */ +typedef sentry_value_t (*sentry_transaction_function_t)( + sentry_value_t transaction, void *user_data); + +/** + * Sets the `before_transaction` callback. + */ +SENTRY_EXPERIMENTAL_API void sentry_options_set_before_transaction( + sentry_options_t *opts, sentry_transaction_function_t func, void *data); + +/** + * A sentry Span. + * + * See https://develop.sentry.dev/sdk/event-payloads/span/ + */ +struct sentry_span_s; +typedef struct sentry_span_s sentry_span_t; + +/** + * Constructs a new Transaction Context. The returned value needs to be passed + * into `sentry_transaction_start` in order to be recorded and sent to sentry. + * + * See + * https://docs.sentry.io/platforms/native/enriching-events/transaction-name/ + * for an explanation of a Transaction's `name`, and + * https://develop.sentry.dev/sdk/performance/span-operations/ for conventions + * around an `operation`'s value. + * + * Also see https://develop.sentry.dev/sdk/event-payloads/transaction/#anatomy + * for an explanation of `operation`, in addition to other properties and + * actions that can be performed on a Transaction. + * + * The returned value is not thread-safe. Users are expected to ensure that + * appropriate locking mechanisms are implemented over the Transaction Context + * if it needs to be mutated across threads. Methods operating on the + * Transaction Context will mention what kind of expectations they carry if they + * need to mutate or access the object in a thread-safe way. + */ +SENTRY_EXPERIMENTAL_API sentry_transaction_context_t * +sentry_transaction_context_new(const char *name, const char *operation); +SENTRY_EXPERIMENTAL_API sentry_transaction_context_t * +sentry_transaction_context_new_n(const char *name, size_t name_len, + const char *operation, size_t operation_len); + +/** + * Sets the `name` on a Transaction Context, which will be used in the + * Transaction constructed off of the context. + * + * The Transaction Context should not be mutated by other functions while + * setting a name on it. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_name( + sentry_transaction_context_t *tx_ctx, const char *name); +SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_name_n( + sentry_transaction_context_t *tx_ctx, const char *name, size_t name_len); +/** + * Gets the `name` of a Transaction Context. + */ +SENTRY_EXPERIMENTAL_API const char *sentry_transaction_context_get_name( + const sentry_transaction_context_t *tx_ctx); + +/** + * Sets the `operation` on a Transaction Context, which will be used in the + * Transaction constructed off of the context + * + * See https://develop.sentry.dev/sdk/performance/span-operations/ for + * conventions on `operation`s. + * + * The Transaction Context should not be mutated by other functions while + * setting an operation on it. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_operation( + sentry_transaction_context_t *tx_ctx, const char *operation); +SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_operation_n( + sentry_transaction_context_t *tx_ctx, const char *operation, + size_t operation_len); +/** + * Gets the `operation` of a Transaction Context. + */ +SENTRY_EXPERIMENTAL_API const char *sentry_transaction_context_get_operation( + const sentry_transaction_context_t *tx_ctx); + +/** + * Sets the `sampled` field on a Transaction Context, which will be used in the + * Transaction constructed off of the context. + * + * When passed any value above 0, the Transaction will bypass all sampling + * options and always be sent to sentry. If passed 0, this Transaction and its + * child spans will never be sent to sentry. + * + * The Transaction Context should not be mutated by other functions while + * setting `sampled` on it. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_context_set_sampled( + sentry_transaction_context_t *tx_ctx, int sampled); + +/** + * Removes the `sampled` field on a Transaction Context, which will be used in + * the Transaction constructed off of the context. + * + * The Transaction will use the sampling rate as defined in `sentry_options`. + * + * The Transaction Context should not be mutated by other functions while + * removing `sampled`. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_context_remove_sampled( + sentry_transaction_context_t *tx_ctx); + +/** + * Update the Transaction Context with the given HTTP header key/value pair. + * + * This is used to propagate distributed tracing metadata from upstream + * services. Therefore, the headers of incoming requests should be fed into this + * function so that sentry is able to continue a trace that was started by an + * upstream service. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_context_update_from_header( + sentry_transaction_context_t *tx_ctx, const char *key, const char *value); +SENTRY_EXPERIMENTAL_API void sentry_transaction_context_update_from_header_n( + sentry_transaction_context_t *tx_ctx, const char *key, size_t key_len, + const char *value, size_t value_len); + +/** + * Starts a new Transaction based on the provided context, restored from an + * external integration (i.e. a span from a different SDK) or manually + * constructed by a user. + * + * The second parameter is a custom Sampling Context to be used with a Traces + * Sampler to allow you to make a more informed sampling decision. + * + * Returns a Transaction, which is expected to be manually managed by the + * caller. Manual management involves ensuring that `sentry_transaction_finish` + * is invoked for the Transaction, and that the caller manually starts and + * finishes any child Spans as needed on the Transaction. + * + * Not invoking `sentry_transaction_finish` with the returned Transaction means + * it will be discarded, and will not be sent to sentry. + * + * To ensure that any Events or Message Events are associated with this + * Transaction while it is active, invoke and pass in the Transaction returned + * by this function to `sentry_set_transaction_object`. Further documentation on + * this can be found in `sentry_set_transaction_object`'s docstring. + * + * Takes ownership of `transaction_context`. A Transaction Context cannot be + * modified or re-used after it is used to start a Transaction. + * + * Takes ownership of `custom_sampling_ctx`. A Sampling Context cannot be + * modified or re-used after it is used to start a Transaction. + * + * The returned value is not thread-safe. Users are expected to ensure that + * appropriate locking mechanisms are implemented over the Transaction if it + * needs to be mutated across threads. Methods operating on the Transaction will + * mention what kind of expectations they carry if they need to mutate or access + * the object in a thread-safe way. + */ +SENTRY_EXPERIMENTAL_API sentry_transaction_t *sentry_transaction_start( + sentry_transaction_context_t *tx_ctx, sentry_value_t custom_sampling_ctx); +/** + * Also starts a transaction like the regular `sentry_transaction_start` + * function, but has an additional timestamp parameter to let the user provide + * explicit timings. + * + * The timestamp should be provided in microseconds since the Unix epoch. + */ +SENTRY_EXPERIMENTAL_API sentry_transaction_t *sentry_transaction_start_ts( + sentry_transaction_context_t *tx_ctx, sentry_value_t custom_sampling_ctx, + uint64_t timestamp); + +/** + * Finishes and sends a Transaction to sentry. The event ID of the Transaction + * will be returned if this was successful; A nil UUID will be returned + * otherwise. + * + * Always takes ownership of `transaction`, regardless of whether the operation + * was successful or not. A Transaction cannot be modified or re-used after it + * is finished. + */ +SENTRY_EXPERIMENTAL_API sentry_uuid_t sentry_transaction_finish( + sentry_transaction_t *tx); +/** + * Also finishes a transaction like the regular `sentry_transaction_finish` + * function, but has an additional timestamp parameter to let the user provide + * explicit timings. + * + * The timestamp should be provided in microseconds since the Unix epoch. + */ +SENTRY_EXPERIMENTAL_API sentry_uuid_t sentry_transaction_finish_ts( + sentry_transaction_t *tx, uint64_t timestamp); + +/** + * Sets the Transaction so any Events sent while the Transaction + * is active will be associated with the Transaction. + * + * If the Transaction being passed in is unsampled, it will still be associated + * with any new Events. This will lead to some Events pointing to orphan or + * missing traces in sentry, see + * https://docs.sentry.io/product/sentry-basics/tracing/trace-view/#orphan-traces-and-broken-subtraces + * + * This increases the number of references pointing to the Transaction. Invoke + * `sentry_transaction_finish` to remove the Transaction set by this function as + * well as its reference by passing in the same Transaction as the one passed + * into this function. + */ +SENTRY_EXPERIMENTAL_API void sentry_set_transaction_object( + sentry_transaction_t *tx); + +/** + * Sets the Span so any Events sent while the Span + * is active will be associated with the Span. + * + * This increases the number of references pointing to the Span. Invoke + * `sentry_span_finish` to remove the Span set by this function as well + * as its reference by passing in the same Span as the one passed into + * this function. + */ +SENTRY_EXPERIMENTAL_API void sentry_set_span(sentry_span_t *span); + +/** + * Starts a new Span. + * + * The return value of `sentry_transaction_start` should be passed in as + * `parent`. This value can't be null, since we don't allow for orphan spans. + * + * Both `operation` and `description` can be null, but it is recommended to + * supply the former. See + * https://develop.sentry.dev/sdk/performance/span-operations/ for conventions + * around operations. + * + * See https://develop.sentry.dev/sdk/event-payloads/span/ for a description of + * the created Span's properties and expectations for `operation` and + * `description`. + * + * Returns a value that should be passed into `sentry_span_finish`. Not + * finishing the Span means it will be discarded, and will not be sent to + * sentry. `sentry_value_null` will be returned if the child Span could not be + * created. + * + * To ensure that any Events or Message Events are associated with this + * Span while it is active, invoke and pass in the Span returned + * by this function to `sentry_set_span`. Further documentation on this can be + * found in `sentry_set_span`'s docstring. + * + * This increases the number of references pointing to the Transaction. + * + * The returned value is not thread-safe. Users are expected to ensure that + * appropriate locking mechanisms are implemented over the Span if it needs + * to be mutated across threads. Methods operating on the Span will mention what + * kind of expectations they carry if they need to mutate or access the object + * in a thread-safe way. + */ +SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child( + sentry_transaction_t *parent, const char *operation, + const char *description); +SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child_n( + sentry_transaction_t *parent, const char *operation, size_t operation_len, + const char *description, size_t description_len); +/** + * Also starts a span like the regular `sentry_transaction_start_child_ts` + * functions, but has an additional timestamp parameter to let the user provide + * explicit timings. + * + * The timestamp should be provided in microseconds since the Unix epoch. + */ +SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child_ts( + sentry_transaction_t *parent, const char *operation, + const char *description, uint64_t timestamp); +SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_transaction_start_child_ts_n( + sentry_transaction_t *parent, const char *operation, size_t operation_len, + const char *description, size_t description_len, uint64_t timestamp); + +/** + * Starts a new Span. + * + * The return value of either `sentry_transaction_start_child` or + * `sentry_span_start_child` should be passed in as `parent`. This value can't + * be null, since we don't allow for orphan spans. + * + * Both `operation` and `description` can be null, but it is recommended to + * supply the former. See + * https://develop.sentry.dev/sdk/performance/span-operations/ for conventions + * around operations. + * + * See https://develop.sentry.dev/sdk/event-payloads/span/ for a description of + * the created Span's properties and expectations for `operation` and + * `description`. + * + * Returns a value that should be passed into `sentry_span_finish`. Not + * finishing the Span means it will be discarded, and will not be sent to + * sentry. `sentry_value_null` will be returned if the child Span could not be + * created. + * + * To ensure that any Events or Message Events are associated with this + * Span while it is active, invoke and pass in the Span returned + * by this function to `sentry_set_span`. Further documentation on this can be + * found in `sentry_set_span`'s docstring. + * + * The returned value is not thread-safe. Users are expected to ensure that + * appropriate locking mechanisms are implemented over the Span if it needs + * to be mutated across threads. Methods operating on the Span will mention what + * kind of expectations they carry if they need to mutate or access the object + * in a thread-safe way. + */ +SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child( + sentry_span_t *parent, const char *operation, const char *description); +SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child_n( + sentry_span_t *parent, const char *operation, size_t operation_len, + const char *description, size_t description_len); +/** + * Also starts a span like the regular `sentry_span_start_child_ts` functions, + * but has an additional timestamp parameter to let the user provide explicit + * timings. + * + * The timestamp should be provided in microseconds since the Unix epoch. + */ +SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child_ts( + sentry_span_t *parent, const char *operation, const char *description, + uint64_t timestamp); +SENTRY_EXPERIMENTAL_API sentry_span_t *sentry_span_start_child_ts_n( + sentry_span_t *parent, const char *operation, size_t operation_len, + const char *description, size_t description_len, uint64_t timestamp); + +/** + * Finishes a Span. + * + * This takes ownership of `span`. A Span cannot be modified or re-used after it + * is finished. + * + * This will mutate the `span`'s containing Transaction, so the containing + * Transaction should also not be mutated by other functions when finishing a + * span. + */ +SENTRY_EXPERIMENTAL_API void sentry_span_finish(sentry_span_t *span); +/** + * Also finishes a span like the regular `sentry_span_finish` function, but has + * an additional timestamp parameter to let the user provide explicit timings. + * + * The timestamp should be provided in microseconds since the Unix epoch. + */ +SENTRY_EXPERIMENTAL_API void sentry_span_finish_ts( + sentry_span_t *span, uint64_t timestamp); + +/** + * Sets a tag on a Transaction to the given string value. + * + * Tags longer than 200 bytes will be truncated. + * + * The Transaction should not be mutated by other functions while a tag is being + * set on it. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_set_tag( + sentry_transaction_t *transaction, const char *tag, const char *value); +SENTRY_EXPERIMENTAL_API void sentry_transaction_set_tag_n( + sentry_transaction_t *transaction, const char *tag, size_t tag_len, + const char *value, size_t value_len); + +/** + * Removes a tag from a Transaction. + * + * The Transaction should not be mutated by other functions while a tag is being + * removed from it. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_tag( + sentry_transaction_t *transaction, const char *tag); +SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_tag_n( + sentry_transaction_t *transaction, const char *tag, size_t tag_len); + +/** + * Sets the given key in a Transaction's "data" section to the given value. + * + * The Transaction should not be mutated by other functions while data is being + * set on it. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_set_data( + sentry_transaction_t *transaction, const char *key, sentry_value_t value); +SENTRY_EXPERIMENTAL_API void sentry_transaction_set_data_n( + sentry_transaction_t *transaction, const char *key, size_t key_len, + sentry_value_t value); + +/** + * Removes a key from a Transaction's "data" section. + * + * The Transaction should not be mutated by other functions while data is being + * removed from it. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_data( + sentry_transaction_t *transaction, const char *key); +SENTRY_EXPERIMENTAL_API void sentry_transaction_remove_data_n( + sentry_transaction_t *transaction, const char *key, size_t key_len); + +/** + * Sets a tag on a Span to the given string value. + * + * Tags longer than 200 bytes will be truncated. + * + * The Span should not be mutated by other functions while a tag is being set on + * it. + */ +SENTRY_EXPERIMENTAL_API void sentry_span_set_tag( + sentry_span_t *span, const char *tag, const char *value); +SENTRY_EXPERIMENTAL_API void sentry_span_set_tag_n(sentry_span_t *span, + const char *tag, size_t tag_len, const char *value, size_t value_len); + +/** + * Removes a tag from a Span. + * + * The Span should not be mutated by other functions while a tag is being + * removed from it. + */ +SENTRY_EXPERIMENTAL_API void sentry_span_remove_tag( + sentry_span_t *span, const char *tag); +SENTRY_EXPERIMENTAL_API void sentry_span_remove_tag_n( + sentry_span_t *span, const char *tag, size_t tag_len); + +/** + * Sets the given key in a Span's "data" section to the given value. + * + * The Span should not be mutated by other functions while data is being set on + * it. + */ +SENTRY_EXPERIMENTAL_API void sentry_span_set_data( + sentry_span_t *span, const char *key, sentry_value_t value); +SENTRY_EXPERIMENTAL_API void sentry_span_set_data_n( + sentry_span_t *span, const char *key, size_t key_len, sentry_value_t value); + +/** + * Removes a key from a Span's "data" section. + * + * The Span should not be mutated by other functions while data is being removed + * from it. + */ +SENTRY_EXPERIMENTAL_API void sentry_span_remove_data( + sentry_span_t *span, const char *key); +SENTRY_EXPERIMENTAL_API void sentry_span_remove_data_n( + sentry_span_t *span, const char *key, size_t key_len); + +/** + * Sets a Transaction's name. + * + * The Transaction should not be mutated by other functions while setting its + * name. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_set_name( + sentry_transaction_t *transaction, const char *name); +SENTRY_EXPERIMENTAL_API void sentry_transaction_set_name_n( + sentry_transaction_t *transaction, const char *name, size_t name_len); + +/** + * Creates a deprecated User Report with a specific name, email and comments. + * + * See + * https://develop.sentry.dev/sdk/data-model/envelope-items/#user-report---deprecated + */ +SENTRY_DEPRECATED("Use `sentry_value_new_feedback` instead") +SENTRY_API sentry_value_t sentry_value_new_user_feedback( + const sentry_uuid_t *uuid, const char *name, const char *email, + const char *comments); +SENTRY_DEPRECATED("Use `sentry_value_new_feedback_n` instead") +SENTRY_API sentry_value_t sentry_value_new_user_feedback_n( + const sentry_uuid_t *uuid, const char *name, size_t name_len, + const char *email, size_t email_len, const char *comments, + size_t comments_len); + +/** + * Captures a deprecated User Report and sends it to Sentry. + */ +SENTRY_DEPRECATED("Use `sentry_capture_feedback` instead") +SENTRY_API void sentry_capture_user_feedback(sentry_value_t user_report); + +/** + * Creates a new User Feedback with a specific message (required), and optional + * contact_email, name, message, and associated_event_id. + * + * See https://develop.sentry.dev/sdk/data-model/envelope-items/#user-feedback + * + * User Feedback can be associated with a specific event that has been + * sent to Sentry earlier. + */ +SENTRY_API sentry_value_t sentry_value_new_feedback(const char *message, + const char *contact_email, const char *name, + const sentry_uuid_t *associated_event_id); +SENTRY_API sentry_value_t sentry_value_new_feedback_n(const char *message, + size_t message_len, const char *contact_email, size_t contact_email_len, + const char *name, size_t name_len, + const sentry_uuid_t *associated_event_id); + +/** + * Captures a manually created User Feedback and sends it to Sentry. + */ +SENTRY_API void sentry_capture_feedback(sentry_value_t user_feedback); + +/** + * The status of a Span or Transaction. + * + * See https://develop.sentry.dev/sdk/event-payloads/span/ for documentation. + */ +typedef enum { + // The operation completed successfully. + // HTTP status 100..299 + successful redirects from the 3xx range. + SENTRY_SPAN_STATUS_OK, + // The operation was cancelled (typically by the user). + SENTRY_SPAN_STATUS_CANCELLED, + // Unknown. Any non-standard HTTP status code. + // "We do not know whether the transaction failed or succeeded." + SENTRY_SPAN_STATUS_UNKNOWN, + // Client specified an invalid argument. 4xx. + // Note that this differs from FailedPrecondition. InvalidArgument + // indicates arguments that are problematic regardless of the + // state of the system. + SENTRY_SPAN_STATUS_INVALID_ARGUMENT, + // Deadline expired before operation could complete. + // For operations that change the state of the system, this error may be + // returned even if the operation has been completed successfully. + // HTTP redirect loops and 504 Gateway Timeout. + SENTRY_SPAN_STATUS_DEADLINE_EXCEEDED, + // 404 Not Found. Some requested entity (file or directory) was not found. + SENTRY_SPAN_STATUS_NOT_FOUND, + // Already exists (409) + // Some entity that we attempted to create already exists. + SENTRY_SPAN_STATUS_ALREADY_EXISTS, + // 403 Forbidden + // The caller does not have permission to execute the specified operation. + SENTRY_SPAN_STATUS_PERMISSION_DENIED, + // 429 Too Many Requests + // Some resource has been exhausted, perhaps a per-user quota or perhaps + // the entire file system is out of space. + SENTRY_SPAN_STATUS_RESOURCE_EXHAUSTED, + // Operation was rejected because the system is not in a state required for + // the operation's execution. + SENTRY_SPAN_STATUS_FAILED_PRECONDITION, + // The operation was aborted, typically due to a concurrency issue. + SENTRY_SPAN_STATUS_ABORTED, + // Operation was attempted past the valid range. + SENTRY_SPAN_STATUS_OUT_OF_RANGE, + // 501 Not Implemented + // Operation is not implemented or not enabled. + SENTRY_SPAN_STATUS_UNIMPLEMENTED, + // Other/generic 5xx + SENTRY_SPAN_STATUS_INTERNAL_ERROR, + // 503 Service Unavailable + SENTRY_SPAN_STATUS_UNAVAILABLE, + // Unrecoverable data loss or corruption + SENTRY_SPAN_STATUS_DATA_LOSS, + // 401 Unauthorized (actually does mean unauthenticated according to RFC + // 7235) + // Prefer PermissionDenied if a user is logged in. + SENTRY_SPAN_STATUS_UNAUTHENTICATED, +} sentry_span_status_t; + +/** + * Sets a Span's status. + * + * The Span should not be mutated by other functions while setting its status. + */ +SENTRY_EXPERIMENTAL_API void sentry_span_set_status( + sentry_span_t *span, sentry_span_status_t status); + +/** + * Sets a Transaction's status. + * + * The Transaction should not be mutated by other functions while setting its + * status. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_set_status( + sentry_transaction_t *tx, sentry_span_status_t status); + +/** + * Type of the `iter_headers` callback. + * + * The callback is being called with HTTP header key/value pairs. + * These headers can be attached to outgoing HTTP requests to propagate + * distributed tracing metadata to downstream services. + * + */ +typedef void (*sentry_iter_headers_function_t)( + const char *key, const char *value, void *userdata); + +/** + * Iterates the distributed tracing HTTP headers for the given span. + */ +SENTRY_EXPERIMENTAL_API void sentry_span_iter_headers(sentry_span_t *span, + sentry_iter_headers_function_t callback, void *userdata); + +/** + * Iterates the distributed tracing HTTP headers for the given transaction. + */ +SENTRY_EXPERIMENTAL_API void sentry_transaction_iter_headers( + sentry_transaction_t *tx, sentry_iter_headers_function_t callback, + void *userdata); + +/** + * Returns whether the application has crashed on the last run. + * + * Notes: + * * The underlying value is set by sentry_init() - it must be called first. + * * Call sentry_clear_crashed_last_run() to reset for the next app run. + * + * Possible return values: + * 1 = the last run was a crash + * 0 = no crash recognized + * -1 = sentry_init() hasn't been called yet + */ +SENTRY_EXPERIMENTAL_API int sentry_get_crashed_last_run(void); + +/** + * Clear the status of the "crashed-last-run". You should explicitly call + * this after sentry_init() if you're using sentry_get_crashed_last_run(). + * Otherwise, the same information is reported on any subsequent runs. + * + * Notes: + * * This doesn't change the value of sentry_get_crashed_last_run() yet. + * However, if sentry_init() is called again, the value will change. + * * This may only be called after sentry_init() and before sentry_close(). + * + * Returns 0 on success, 1 on error. + */ +SENTRY_EXPERIMENTAL_API int sentry_clear_crashed_last_run(void); + +/** + * Sentry SDK version. + */ +SENTRY_EXPERIMENTAL_API const char *sentry_sdk_version(void); + +/** + * Sentry SDK name set during build time. + */ +SENTRY_DEPRECATED("Use `sentry_options_get_sdk_name` instead") +SENTRY_EXPERIMENTAL_API const char *sentry_sdk_name(void); + +/** + * Sentry SDK User-Agent set during build time. + */ +SENTRY_DEPRECATED("Use `sentry_options_get_user_agent` instead") +SENTRY_EXPERIMENTAL_API const char *sentry_sdk_user_agent(void); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_client.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_client.lib new file mode 100644 index 0000000..f47af61 Binary files /dev/null and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_client.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_compat.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_compat.lib similarity index 86% rename from Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_compat.lib rename to Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_compat.lib index 8037dce..0b2f3f0 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_compat.lib and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_compat.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_getopt.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_getopt.lib similarity index 94% rename from Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_getopt.lib rename to Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_getopt.lib index a5831e0..4a756de 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_getopt.lib and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_getopt.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_handler_lib.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_handler_lib.lib new file mode 100644 index 0000000..eb322f6 Binary files /dev/null and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_handler_lib.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_minidump.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_minidump.lib new file mode 100644 index 0000000..8ce2230 Binary files /dev/null and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_minidump.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_snapshot.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_snapshot.lib new file mode 100644 index 0000000..1954b1d Binary files /dev/null and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_snapshot.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_tools.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_tools.lib new file mode 100644 index 0000000..6e2d0ba Binary files /dev/null and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_tools.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_util.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_util.lib new file mode 100644 index 0000000..bf0efb4 Binary files /dev/null and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_util.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_zlib.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_zlib.lib similarity index 97% rename from Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_zlib.lib rename to Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_zlib.lib index 963d937..885f192 100644 Binary files a/Plugins/Sentry/Source/ThirdParty/Win64/Crashpad/lib/crashpad_zlib.lib and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/crashpad_zlib.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/lib/mini_chromium.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/mini_chromium.lib new file mode 100644 index 0000000..7c0ae40 Binary files /dev/null and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/mini_chromium.lib differ diff --git a/Plugins/Sentry/Source/ThirdParty/Win64/lib/sentry.lib b/Plugins/Sentry/Source/ThirdParty/Win64/lib/sentry.lib new file mode 100644 index 0000000..0d46c04 Binary files /dev/null and b/Plugins/Sentry/Source/ThirdParty/Win64/lib/sentry.lib differ diff --git a/Plugins/Sentry/sentry-cli.properties b/Plugins/Sentry/sentry-cli.properties index 31db3d9..66d3fdb 100644 --- a/Plugins/Sentry/sentry-cli.properties +++ b/Plugins/Sentry/sentry-cli.properties @@ -1,2 +1,2 @@ -version=2.50.2 +version=2.53.0 repo=https://github.com/getsentry/sentry-cli diff --git a/Source/SentryTower/SentryTowerGameInstance.cpp b/Source/SentryTower/SentryTowerGameInstance.cpp index eaba754..6fe7d69 100644 --- a/Source/SentryTower/SentryTowerGameInstance.cpp +++ b/Source/SentryTower/SentryTowerGameInstance.cpp @@ -15,35 +15,13 @@ void USentryTowerGameInstance::Init() { Super::Init(); - // Initialize Sentry with environment variable override for DSN - USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem(); - if (SentrySubsystem) - { - FString EnvironmentDsn = FPlatformMisc::GetEnvironmentVariable(TEXT("SENTRY_DSN")); - if (!EnvironmentDsn.IsEmpty()) - { - // Override DSN with environment variable - UE_LOG(LogTemp, Log, TEXT("Using SENTRY_DSN environment variable")); - SentrySubsystem->InitializeWithSettings(FConfigureSettingsNativeDelegate::CreateLambda([EnvironmentDsn](USentrySettings* Settings) - { - Settings->Dsn = EnvironmentDsn; - })); - } - else - { - // Use default settings - UE_LOG(LogTemp, Log, TEXT("SENTRY_DSN environment variable not set, using default settings")); - SentrySubsystem->Initialize(); - } - } - if (FParse::Param(FCommandLine::Get(), TEXT("NullRHI"))) { // For CI simulation (no RHI available) copy pre-made screenshot to dest where Unreal SDK can pick it up during crash handling const FString FakeScreenshotPath = FPaths::Combine(FPaths::ProjectContentDir(), TEXT("Resources"), TEXT("screenshot.png")); // Add screenshot attachment to Sentry - if (SentrySubsystem) + if (USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem()) { // Create the attachment USentryAttachment* ScreenshotAttachment = USentryLibrary::CreateSentryAttachmentWithPath( @@ -65,13 +43,11 @@ void USentryTowerGameInstance::BuyUpgrade(const FOnBuyComplete& OnBuyComplete) { USentrySubsystem* Sentry = GEngine->GetEngineSubsystem(); - USentryTransaction* CheckoutTransaction = Sentry->StartTransaction(TEXT("checkout"), TEXT("http.client")); + USentryTransaction* CheckoutTransaction = Sentry->StartTransaction(TEXT("checkout"), TEXT("http.client"), true); - USentrySpan* ProcessSpan = CheckoutTransaction->StartChildSpan(TEXT("task"), TEXT("process_upgrade_data")); + USentrySpan* ProcessSpan = CheckoutTransaction->StartChildSpan(TEXT("task"), TEXT("process_upgrade_data"), true); - TSharedPtr UpgradeDataJsonObject = MakeShareable(new FJsonObject()); - UpgradeDataJsonObject->SetStringField(TEXT("UpgradeName"), TEXT("NewTower")); - UpgradeDataJsonObject->SetStringField(TEXT("PlayerEmail"), TEXT("player@sentry-tower.com")); + TSharedPtr UpgradeDataJsonObject = BuildCheckoutRequestJson(); FString JsonString; TSharedRef> Writer = TJsonWriterFactory<>::Create(&JsonString); @@ -84,8 +60,8 @@ void USentryTowerGameInstance::BuyUpgrade(const FOnBuyComplete& OnBuyComplete) ProcessSpan->Finish(); - USentrySpan* CheckoutSpan = CheckoutTransaction->StartChildSpan(TEXT("task"), TEXT("checkout_request")); - FString Domain = TEXT("https://aspnetcore.empower-plant.com"); + USentrySpan* CheckoutSpan = CheckoutTransaction->StartChildSpan(TEXT("task"), TEXT("checkout_request"), true); + FString Domain = TEXT("https://flask.empower-plant.com"); FString Endpoint = TEXT("/checkout"); FString CheckoutURL = Domain + Endpoint; @@ -96,13 +72,21 @@ void USentryTowerGameInstance::BuyUpgrade(const FOnBuyComplete& OnBuyComplete) HttpRequest->SetVerb("POST"); HttpRequest->SetHeader(TEXT("Content-Type"), TEXT("application/json")); + FString TraceKey; + FString TraceValue; + CheckoutSpan->GetTrace(TraceKey, TraceValue); + + UE_LOG(LogTemp, Log, TEXT("TraceValue - %s"), *TraceValue); + + HttpRequest->SetHeader(TraceKey, TraceValue); + HttpRequest->SetContentAsString(JsonString); HttpRequest->OnProcessRequestComplete().BindLambda([=](FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) { CheckoutSpan->Finish(); - USentrySpan* ResponseSpan = CheckoutTransaction->StartChildSpan(TEXT("task"), TEXT("process_checkout_response")); + USentrySpan* ResponseSpan = CheckoutTransaction->StartChildSpan(TEXT("task"), TEXT("process_checkout_response"), true); ensureMsgf(bWasSuccessful && Response.IsValid() && Response->GetResponseCode() == 200, TEXT("Checkout HTTP request failed")); if (bWasSuccessful && Response.IsValid() && Response->GetResponseCode() == 200) @@ -122,3 +106,50 @@ void USentryTowerGameInstance::BuyUpgrade(const FOnBuyComplete& OnBuyComplete) HttpRequest->ProcessRequest(); } + +TSharedPtr USentryTowerGameInstance::BuildCheckoutRequestJson() +{ + TSharedPtr JsonObject = MakeShareable(new FJsonObject()); + + // Build cart object + TSharedPtr CartObject = MakeShareable(new FJsonObject()); + + // Build items array + TArray> ItemsArray; + TSharedPtr ItemObject = MakeShareable(new FJsonObject()); + ItemObject->SetStringField(TEXT("description"), TEXT("The mood ring for plants.")); + ItemObject->SetStringField(TEXT("descriptionfull"), TEXT("This is an example of what you can do with just a few things, a little imagination and a happy dream in your heart. I'm a water fanatic. I love water. There's not a thing in the world wrong with washing your brush. Everybody needs a friend. Here we're limited by the time we have.")); + ItemObject->SetNumberField(TEXT("id"), 3); + ItemObject->SetStringField(TEXT("img"), TEXT("https://storage.googleapis.com/application-monitoring/mood-planter.jpg")); + ItemObject->SetStringField(TEXT("imgcropped"), TEXT("https://storage.googleapis.com/application-monitoring/mood-planter-cropped.jpg")); + ItemObject->SetNumberField(TEXT("price"), 155); + ItemObject->SetArrayField(TEXT("reviews"), TArray>()); + ItemObject->SetStringField(TEXT("title"), TEXT("Plant Mood")); + ItemsArray.Add(MakeShareable(new FJsonValueObject(ItemObject))); + CartObject->SetArrayField(TEXT("items"), ItemsArray); + + // Build quantities object + TSharedPtr QuantitiesObject = MakeShareable(new FJsonObject()); + QuantitiesObject->SetNumberField(TEXT("3"), 3); + CartObject->SetObjectField(TEXT("quantities"), QuantitiesObject); + CartObject->SetNumberField(TEXT("total"), 465); + + // Build form object + TSharedPtr FormObject = MakeShareable(new FJsonObject()); + FormObject->SetStringField(TEXT("address"), TEXT("")); + FormObject->SetStringField(TEXT("city"), TEXT("")); + FormObject->SetStringField(TEXT("country"), TEXT("")); + FormObject->SetStringField(TEXT("email"), TEXT("sampleEmail@email.com")); + FormObject->SetStringField(TEXT("firstName"), TEXT("")); + FormObject->SetStringField(TEXT("lastName"), TEXT("")); + FormObject->SetStringField(TEXT("state"), TEXT("")); + FormObject->SetStringField(TEXT("subscribe"), TEXT("")); + FormObject->SetStringField(TEXT("zipCode"), TEXT("")); + + // Set all objects to main JSON + JsonObject->SetObjectField(TEXT("cart"), CartObject); + JsonObject->SetObjectField(TEXT("form"), FormObject); + JsonObject->SetStringField(TEXT("validate_inventory"), TEXT("true")); + + return JsonObject; +} diff --git a/Source/SentryTower/SentryTowerGameInstance.h b/Source/SentryTower/SentryTowerGameInstance.h index 99e3823..efd31b8 100644 --- a/Source/SentryTower/SentryTowerGameInstance.h +++ b/Source/SentryTower/SentryTowerGameInstance.h @@ -18,4 +18,7 @@ class SENTRYTOWER_API USentryTowerGameInstance : public UGameInstance UFUNCTION(BlueprintCallable, Meta = (AutoCreateRefTerm = "OnBuyComplete")) void BuyUpgrade(const FOnBuyComplete& OnBuyComplete); + +private: + TSharedPtr BuildCheckoutRequestJson(); };